Sensor ultrasonidos HC-SR04

Este sensor nos permite medir distancias de 2cm hasta 2 metros mediante ultrasonidos de 40kHz y son útiles y baratos para proyectos de detección de obstáculos o personas, aunque el ángulo de detección no es muy preciso y es sensible a cómo es el obstáculo al que detecta. Su funcionamiento se realiza mediante pulsos inaudibles que se envían por el foco emisor (Trigger), éste impacta en un obstáculo y rebota hacia el foco de eco (Echo) y mediante logaritmo, la distancia se calcula por el tiempo que tarda la señal en retornar por la velocidad del sonido en el aire.
Para el ejemplo vamos a usar la librería NewPing que se puede instalar mediante las librerías en arduino IDE o esta página:
Precauciones
- Atención al conexionado y evitar hacer cortos entre la alimentación y los pines digitales.
Código para medir la distancia de nuestra mano:
Incluimos la librería:
#include <NewPing.h>
Variable de los pines de echo y trigger y la distancia máxima de este sensor que son 2 metros:
const int echoPin = 5;
const int trigPin = 7;
const int MaxDistancia = 200;
Creamos el objeto llamado sonar o cualquier nombre que queramos:
NewPing sonar(trigPin, echoPin, MaxDistancia);
Iniciamos el serial:
Serial.begin(115200);
Y printamos la distancia a 50ms (mínimo 29ms).
delay(50);
Serial.print(sonar.ping_cm());
Serial.println(” cm”);
Si muestra 0 está mal conectado, el objeto está a menos de 3cm o está roto.
Notas
- Debe alimentarse con 5V, no es compatible con 3,3V.
- Para que la medición sea lo más exacta posible debe rebotarse en una superficie plana como una caja y al menos 20cm.
- Existen ultrasonidos más precisos y potentes como los de lso vehículos.
- Si el sensor emite un ligero zumbido es normal; está funcionando.
- Se puede usar sin librerías pero es más complicado de programar.
- El mínimo de lectura son 3cm; más o menos retorna 0.