MEDICIÓN DE DISTANCIA CON SENSOR ULTRASÓNICO Y ARDUINO
Las señales ultrasónicas, son señales que superan el rango de frecuencias que pueden oír las personas, por lo tanto no pueden ser escuchadas por el humano, este tipo de señales son utilizadas por algunos animales como por ejemplo los murciélagos como método de ubicación espacial, por medio del ultrasonido detectan los obstáculos que tienen en su entorno.
En el campo de la ingeniería se utilizan técnicas similares en aplicaciones como los radares o los sonares, en el caso especifico de los sonares, se utiliza un dispositivo electrónico para generar y emitir una señal ultrasónica que se dispersa en el entorno hasta chocar con un objeto (obstáculo), luego de ese choque la señal es reflejada de nuevo al punto de origen y es recibida por un sensor, el tiempo que se demora la señal en ir, chocar con el objeto y volver al punto de origen es el dato utilizado para calcular la distancia a la que se encuentra el objeto que se ha detectado.
Existen diferentes referencias de sensores que pueden realizar este tipo de trabajo, sin embargo el más utilizado tanto por sus prestaciones como por su bajo costo es el sensor hc-sr04, este sensor cuenta con las siguientes características:
- Voltaje de alimentación 5 voltios
- Frecuencia de trabajo 40 KHz
- Rango efectivo de medición de 2 – 400 Cm
- Dimensiones 45 * 20 * 15 mm
- 4 terminales de conexión
- Pulso de disparo de 10 us
Como ya se pudo observar en las características, este sensor cuenta tan solo con cuatro pines de conexión de los cuales dos son utilizados para la alimentación de voltaje del dispositivo, los otros dos son utilizados para recibir las ordenes del dispositivo que controla al sensor y entregarle al mismo dispositivo la información del tiempo que se tardo la señal ultrasónica en ir y regresar.
Los cuatro pines del hc-sr04 son los siguientes:
- Vcc y Gnd (Pines de alimentación del sensor – 5 Voltios)
- Trigger (Pin de disparo o activación del sensor)
- Output o Echo (Pin entrega pulso de tiempo)
Trigger:
Output o Echo:
Cálculo de distancia:
- Tiempo que dura el pulso entregado por el pin echo del sensor
- Velocidad del sonido
Para el caso del trabajo con arduino se va a hacer una conversión más y es pasar dicha velocidad a centímetros sobre microsegundo, la razón de esto es que la función de arduino que se va a utilizar más adelante para leer el pulso entregado por el echo entrega como resultado el tiempo de duración expresado en microsegundos.
Por lo tanto la velocidad del sonido es de 0.0343 cm/µs y esta es la velocidad con la que se va a trabajar posteriormente en el programa de arduino.
El siguiente dato a tener en cuenta es el tiempo que se demora la señal en ir y volver al sensor, este tiempo determinado por el pulso generado por el pin echo se va a medir con el arduino con una función que ya explicaremos más adelante.
Sin embargo como esa distancia está calculada con base en el tiempo que demoró la señal en salir y volver al sensor, este cálculo entregaría el doble de la distancia que se requiere, ya que lo que se necesita es la distancia entre sensor y el objeto.
Esto se logra teniendo en cuenta solo el tiempo que se demora la señal entre ser emitida por el sensor y chocar con el objeto lo cual es igual a decir que solo se tiene en cuenta la mitad del tiempo del pulso generado por el pin echo ó también es válido decir que solo se tiene en cuenta la mitad del recorrido. Por lo tanto la formula final para determinar la distancia es:
Programación en Arduino
El programa en arduino es realmente sencillo, lo único que se tiene que hacer es configurar los pines que se van a utilizar para generar el pulso necesario para el trigger y con el que se va a recibir el pulso generado por el pin del echo, luego de esto se mide la duración del pulso y se calcula la distancia con la formula presentada anteriormente.
Función pulseIn de Arduino:
La sintaxis de pulseIn es la siguiente:
donde:
Pin= pin del arduino en el que se va a medir el pulso.
Por ejemplo si se escribe de la siguiente forma:
pulseIn(7,HIGH);
Se monitorea el pin 7 de arduino, en el momento que ingrese un nivel alto comienza a realizar el conteo de tiempo el cual se detiene hasta que por el pin 7 ingrese un nivel bajo lo cual significa que ha terminado el pulso.
Ejemplo:
Simulación de sensor ultrasonico con proteus (Enlace a publicación de Geek Electrónica)
En la función void setup () se inicializa el lcd y luego se configuran los pines del arduino que se van a conectar al sensor como entrada y como salida.
En la función void loop () se lleva a cabo el desarrollo del programa como tal y se podría dividir en tres etapas:
- Generar el pulso de 10 microsegundos (mínimo) para el trigger del sensor, necesario para iniciar la actividad del sensor.
- Lectura del pulso generado por el pin echo del sensor y calculo de distancia con la formula antes presentada.
- Visualización en pantalla LCD de la distancia entre sensor y objeto.