Cuando necesitamos medir distancia, existen muchas alternativas. Pero cuando lo queremos hacer sin contacto, ya el abanico de opciones se va cerrando, podríamos usar sensores laser, infrarrojos o ultrasónicos, por mencionar los más comunes. La medición de distancia por ultrasonidos es una de las más sencillas, económicas y prácticas alternativas que tenemos por ahora. A continuación vamos a aprender a usar el popular medidor de distancia por ultrasonidos HC-SR04.
El modulo HC-SR04 viene montado en una pequeña placa la cual contiene toda la electrónica requerida para hacer la medición y comunicarse. Este módulo nos permite medir distancias desde 2cm hasta 400cm, con una resolución de hasta 3mm.
Funcionamiento
El principio básico de funcionamiento es como sigue:
- Se envía un pulso (de 5V) de 10 microsegundos al pin Trig para iniciar la medición.
- El módulo enviará automáticamente ocho pulsos de 40 kHz y detecta si hay una señal de retorno.
- El modulo responde con un pulso (de 5V) cuyo tiempo en alto es el tiempo que tardo el pulso en ir y regresar, este tiempo esta medido en microsegundos.
- Por lo tanto la distancia se calcula por
Distancia = (tiempo en alto del pulso recibido x velocidad del sonido (343m/s)) / 2
Pines
Los pines son los siguientes:
VCC - Es el pin de alimentación de 5V Trig – Es un pin de entrada que inicia la medición Echo – Es el pin de salida que nos indica la distancia medida Gnd – Es el pin de tierra
Especificaciones
Las especificaciones del sensor HC-SR04 son las siguientes:
Voltaje de operación: 5Vdc Corriente de operación: 15mA Frecuencia de operación: 40Hz Máximo rango: 4m Mínimo rango: 2cm Angulo de medición: 15 grados Señal de entrada de disparo: 10µS pulso TTL (5V) Señal de salida Echo: Señal TTL (5V) Dimensiones: 45 * 20 * 15mm
Probando el sensor
Circuito
Para realizar una prueba del sensor montaremos el siguiente circuito:
Programa
Y cargaremos el siguiente código en el IDE de Arduino
long tiempo; int disparo = 2; // triger int echo = 3; // echo float distancia; void setup() { pinMode(disparo, OUTPUT); pinMode(echo, INPUT); digitalWrite(disparo, LOW); Serial.begin(9600); } void loop() { digitalWrite(disparo, HIGH); //Se envia el pulso de activacion del sensor delayMicroseconds(10); digitalWrite(disparo, LOW); tiempo = pulseIn(echo, HIGH); // Obtengo el tiempo del sensor distancia = 0.0343*tiempo/2; //Calculo la distancia Serial.println(distancia); //Muestro la distancia en el monitor serie delay(1000); }
Y con esto hemos culminado la lección, espero te allá sido de provecho.
Y si aun no te has suscrito a nuestro boletín, suscríbete y te mantendré informado de la últimas publicaciones y entregas especiales. Y si tienes alguna pregunta o comentario acerca del post no dudes en hacerla.