Issues with code for 3 pin ping sensor to servo


I am new to this forum but have searched everywhere, internal and external to here, for the correct code to link up a 3 pin ping sensor to a servo. The hope is to get a servo to sweeping from 0-180 degrees in relation to the distance read by 3 pin ping sensors, which is part of a bigger project.

I have gained code to make the ping more accurate, which is attached, taking a median reading but the distance read out is just in symbols when I load it.

Can anyone give me help with this and ideally linking it to the sweeping servo, as it is driving me crazy??



sketch_new.ino (940 Bytes)

Why not just post the code, instead of making people download it?

#include <NewPing.h>
#define TRIGGER_PIN  12  // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     11  // 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() {
  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 =; // Send ping, get ping time in microseconds (uS).
  Serial.print("Ping: ");
  Serial.print(sonar.convert_cm(uS)); // Convert ping time to distance and print result (0 = outside set distance range, no ping echo)

Is your serial monitor also running at 115200 bits per second?

Wait so let me try to understand this:

You are trying to make the servo move the same degree as the ping sensor reading. So when the sensor read 50 the servo moves to 50 and so on?

If so:

Check This