Saltar la navegación

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);

}