Programa
El funcionamiento se basa en la función pulseIn(pin,valor). Ella se encargará de medir el tiempo que tarda el pulso de sonido en ir-rebotar-volver. En nuestro caso enviaremos el pulso con un simple digitalWrite sobre el pin trigger y le diremos a pulseIn que vigile el pin echo hasta que llegue el pulso. La función nos devolverá el tiempo en microsegundos.
int trigPin = 8; int echoPin = 9; long duration; //tiempo de ida/vuelta int cm=0; //Para almacenar el valor obtenido en cm valor=0 void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { //ponemos al trigger a low para activarlo después digitalWrite(trigPin, LOW); delayMicroseconds(2); //Activar el módulo con un pulso de 10microsec. digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); //Esperamos la llegada de un pulso HIGH duration = pulseIn(echoPin, HIGH); //tiempo de ida y vuelta, dividimos por 2 duration=duration/2; //La velocidad del sonido es de 340 m/s //es decir, 29 microsegundos por centímetro cm = duration/ 29; Serial.print("Distancia:"); Serial.println(cm); delay(100); }