Una pequeña chuleta de como manejar el sensor de distacia por ultrasonidos HC-SR04 desde Arduino.
Este es el esquema de conexiones de Fritzing:
Y el sketch que muestra el funcionamiento basico del sensor.
Lo que hace es enviar una señal y, durante 5 microsegundos, comprobar si hay algun retorno.Si es asi estima una distancia al objeto en base al tiempo que ha tardado la señal.
Por ultimo muestra los datos por el terminal serie. Repite esta rutina cada segundo.
/* Ejemplo de como funciona el sensor de distancia por ultrasonido Por la consola muestra la distancia y cuando esta llega a un punto determinado se enciende un led. HC-SR04 conexiones: VCC al arduino 5v GND al arduino GND Echo al Arduino pin 8 Trig al Arduino pin 7 */ #define echoPin 8 #define trigPin 7 #define LEDPin 13 long duration, cm; void setup(){ Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(LEDPin, OUTPUT); } void loop(){ digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(5); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); cm = microsecondsToCentimeters(duration); Serial.print ("Milisegundos: "); Serial.print(duration); Serial.print(" Distancia estimada: "); Serial.print(cm); Serial.println(" cm"); delay(1000); } long microsecondsToCentimeters(long microseconds){ // La velocidad del sonido a 20º de temperatura es 340 m/s o // 29 microsegundos por centrimetro. // La señal tiene que ir y volver por lo que la distancia a // la que se encuentra el objeto es la mitad de la recorrida. return microseconds / 29 /2 ; }