Telémetro ultrasónico Arduino – HC-SR04

Puede descargar nuestro libro electrónico ‘Aprender Arduino’ desde este enlace

En este tutorial presentamos un método para medir la distancia entre un Arduino y objetos cercanos. Es de particular uso para los robots automatizados para darles ‘ojos’ para buscar objetos cercanos, medir las distancias entre ellos y actuar sobre esa distancia. Presentamos el sensor telémetro HC-SR04

Los sensores baratos normalmente tienen 2 objetos cilíndricos que se asemejan a un altavoz con clavijas en el medio. Bueno, uno de ellos es un altavoz, el otro es un micrófono.

El sensor tiene 4 pines +5v, GND, Trig y Echo. Ignorando lo obvio (+5v y GND), tenemos los 2 restantes que se usan para calcular la distancia. El microcontrolador lleva el pin Trig a High durante 10 microsegundos y luego vuelve a bajarlo. En este punto, el sensor envía una señal ultrasónica (alrededor de 40 kHz, creo) desde el altavoz y espera un eco. Si el sensor capta un eco, el pin Echo se baja (el microcontrolador lo ha levantado previamente). El tiempo que tarda desde que se activa la señal hasta el eco es el tiempo que tarda el sonido en viajar desde el sensor hasta el objeto y viceversa.
Conociendo la velocidad del sonido, que es de aproximadamente 340,29 m/s, podemos calcular la distancia recorrida por el sonido en ese tiempo y luego dividirla por 2 para obtener la distancia desde el objeto.
¿Suena dificil? No hay problema, una biblioteca salva el día y hace que todo sea más fácil.

telémetro ultrasónico hc-sr04

Conectar el sensor ultrasónico a Arduino es muy fácil.

La biblioteca se llama NewPing y se puede descargar aquí. Instale la biblioteca. Si necesitas ayuda lee aquí.

Ahora lo primero es lo primero. Conecte su sensor al Arduino de la siguiente manera

Arduino => Sensor ultrasónico
+5V => +5V
TIERRA => TIERRA
Echo => D11 (o cualquier otro pin)
Gatillo => D12 (o cualquier otro pin)

Puede usar los pines que desee para Echo y Trigger. Ahora abra el IDE de Arduino y copie el siguiente código. Este código es un ejemplo que se encuentra en la Biblioteca NewPing. Explicaré partes y piezas a continuación.

#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.  Serial.print("Ping: ");  Serial.print(sonar.ping_cm()); // Send ping, get distance in cm and print result (0 = outside set distance range)  Serial.println("cm");  }  

La biblioteca facilita mucho el uso de este sensor, como puede ver en el código anterior.
La línea ‘#define MAX_DISTANCE 200’ define la longitud máxima que podemos leer, en cm. Normalmente, estos sensores están clasificados entre 400 cm y 500 cm, pero personalmente recomiendo un máximo de 200 cm o quizás 250 cm. En la práctica obtuve resultados bastante buenos por debajo de los 250 cm pero el porcentaje de error aumentó al llegar a los 400 cm. La línea a continuación está inicializando un objeto NewPing llamado sonar con los valores de los pines y la distancia máxima.
Sonda NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

La línea más importante es ‘Serial.print(sonar.ping_cm());’, particularmente ‘sonar.ping_cm()’. Esta función realizará toda la secuencia de inicialización y los cálculos necesarios para obtener la distancia y devolverá la longitud en cm.
Si el valor devuelto es ‘0’, la distancia está fuera de rango… en este ejemplo, por encima de 200 cm.
Ahora está listo para instalar este sensor en su robot 🙂 Mientras tanto, es posible que desee echar un vistazo a otra funcionalidad interesante aunque avanzada de la biblioteca NewPing, que es el ejemplo de sensor múltiple.
¡Lo encontrará en NewPing15Sensors, y muestra cómo se puede usar la biblioteca para monitorear 15 telémetros ultrasónicos al mismo tiempo! ¡Ahora su robot podría necesitar una actualización de visión!

Compre sensores ultrasónicos en (ebay)

Edificio feliz 🙂