El siguiente código nos permitirá comprobar por el puerto serie si las mediciones del sensor son correctas.
// Pin de la tarjeta Arduino donde se haya conectado el pin Echo del sensor ultrasonidos int pinEcho = 6; // Pin de la tarjeta Arduino donde se haya conectado el pin Trig del sensor ultrasonidos int pinTrig = 3; void setup() { // Activación del pin TRIG como salida, para enviar el pulso ultrasónico pinMode(pinTrig, OUTPUT); // Activación del pin ECHO como entrada, para recibir el pulso ultrasónico pinMode(pinEcho, INPUT); // Activación del monitor serie para mostrar mensajes posteriormente Serial.begin(9600); } void loop() { // Envío del pulso ultrasónico por el pin TRIG. Requiere establecer previamente // la señal LOW y luego enviar el pulso con el valor HIGH. Se establece una // pausa entre cada orden para dar tiempo a su ejecución digitalWrite(pinTrig, LOW); delayMicroseconds(10); digitalWrite(pinTrig, HIGH); delayMicroseconds(10); // Obtener el tiempo que se tarda en recibir la señal HIGH que fue enviada // por el pin Trig, y que será recibido por el pin Echo. // Se esperará a recibir la señal durante un tiempo máximo marcado por el // tercer parámetro (en microsegundos). // En caso de no recibir la señal en el tiempo máximo establecido, se obtiene 0 long pulseDuration = pulseIn(pinEcho, HIGH, 10000); // Una vez recibida la señal, se calculará la distancia en función de la velocidad // del sonido 340 m/s int distance = (int)(0.034 * pulseDuration / 2); if(distance > 0) { // Mostrar el resultado por el monitor serie Serial.print("Distancia "); Serial.print(distance); Serial.println(" cm"); } else { Serial.println("Distancia desconocida"); } }Para simplificar el código, podemos obtener el mismo resultado haciendo uso de la libreria "NewPing" que se puede instalar desde el gestor de librerías de Arduino o desde el siguiente archivo: https://bitbucket.org/teckel12/arduino-new-ping/downloads
#include <NewPing.h> int pinEcho = 6; int pinTrig = 3; int max_distance = 200; // Distancia máxima a detectar en cm NewPing sonar(pinTrig, pinEcho, max_distance); void setup() { Serial.begin(9600);} void loop() { int distance = sonar.ping_cm(); if(distance > 0) { Serial.print("Distancia "); Serial.print(distance); Serial.println(" cm"); } else { Serial.println("Distancia desconocida"); }}