need help please?

Can anyone help me with my code to make a servo work with an hc-sr04 ping sensor? no matter how many times I tried to write it differently the servo does not work! I am just wanting the servo to move 180 if the ping is less than 50 cm and 0 if it is more than 50 cm! any help would be greatly appreciated thanks! here's my code
#include <Servo.h>

// ---------------------------------------------------------------------------
// Example NewPing library sketch that does a ping about 20 times per second.
// ---------------------------------------------------------------------------
Servo myservo;
#include <NewPing.h>

#define TRIGGER_PIN 3 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 2 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

void setup() {
myservo.attach(6);
Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
}

void loop() {

delay(50); // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
Serial.print("Ping: ");
Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
Serial.println("cm");

{
if (MAX_DISTANCE > 50)

{
myservo.write(180);
delay(15);
}
if (MAX_DISTANCE < 50)
{
myservo.write(0);
delay(15);
}
}
}

kevintutor74:

  if (MAX_DISTANCE > 50) {

myservo.write(180);
   delay(15);
 }
 if (MAX_DISTANCE < 50) {
   myservo.write(0);
   delay(15);
 }

When you compare two constants you never get answers that change. You should calculate AND SAVE the distance in cm and compare THAT to 50.

Is the curly bracket after Serial.print(cm); misplaced? Use the auto format to indent your code. Use ctrl-t to auto format.

What happens if MAX_DISTANCE ==50?

MAX_DISTANCE probably won't change.

#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

kevintutor, note the use of code tags below.
Quote this post to see the source or use the # button above the smileys to make a set of your own.
The tags keep code from being interpreted as html.

You have created MAX_DISTANCE with the code #define MAX_DISTANCE 200 That means rwo things. First, MAX_DISTANCE is not a variable in the memory of the program - it is just something the compiler knows. And second, because it is not a variable it can never change.

The variable that represents the distance that is measured by the ping sensor is called uS and it is a number of microseconds.

You probably want to create a new variable called (perhaps) distanceCM = uS/US_ROUNDTRIP_CM; and use that variable in the tests where you presently have MAX_DISTANCE.

...R

GoForSmoke:
kevintutor, note the use of code tags below.
Quote this post to see the source or use the # button above the smileys to make a set of your own.
The tags keep code from being interpreted as html.

@op, these things:

[code=myfile.h]
  //Some code
[/code]

Produces:

  //Some code