Sensor de ultrasonidos

arduino-sensor-ultrasonidos-hc-sr04
¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 5)

El sensor de ultrasonidos es el dispositivo ideal para medir distancias usando Arduino. Uno de los sensores de distancia más populares es el sensor HC-SR04. Este sensor ultrasónico es muy económico, versátil y muy fácil de usar y programar.

 

¿Qué son los ultrasonidos?

Los ultrasonidos son ondas sonoras cuyo rango de frecuencias es superior a los 20.000 Hz. Estas frecuencias no son percibidas por el oído humano, pero si pueden ser percibidas por algunos animales, entre estos, quizá el caso más conocido es el mejor amigo del hombre: el perro.

Espectro de audición entre el ser humano y diferentes animales

Los ultrasonidos tienen muchas aplicaciones en diferentes campos como la física, la industria, o la medicina.

Una de las aplicaciones más antiguas y conocidas en el uso de los ultrasonidos es el sonar, que, en base al efecto de la eco localización, se utiliza en la detección y la localización de objetos.

Principio de funcionamiento de un sensor de ultrasonidos

Se basa en la emisión de una señal ultrasónica hacia un objeto. Este objeto recibe esta señal refleja parte de ella hacia el emisor.

Aplicando algunos conocimientos básicos sobre la propagación de las ondas sonoras y mediante algunos sencillos cálculos matemáticos, es posible determinar a qué distancia se encuentra el objeto del emisor.

Algunos animales como el murciélago o los delfines usan este mecanismo en forma natural para para orientarse y cazar.

Esta aplicación de los ultrasonidos en muy usada en control de navegación de barcos y submarinos, así como en radares, análisis sismográfico y en las ecografías médicas.

 

¿Qué es un sensor de ultrasonidos?

Un sensor de ultrasonidos es un dispositivo que puede medir la distancia a un objeto mediante el uso de ondas de sonido.

El sensor mide la distancia enviando una onda de sonido a una frecuencia específica y escuchando esa onda de sonido de regreso, al rebotar esta contra algún objeto u obstáculo.

Usando un microcontrolador que registre el tiempo transcurrido entre la onda de sonido que se está generando y la onda de sonido que rebota, es posible calcular la distancia entre el sensor y el objeto.

 

¿Cómo funciona un sensor de ultrasonidos?

Un sensor de ultrasonidos consta básicamente de un generador de señal y un micrófono transductor. Hay modelos que usan un emisor y transductor separados, y otros que lo combinan en un solo dispositivo.

Ejemplo de sensores de ultrasonido

Su operación es bastante sencilla. El emisor ultrasónico vibra a una frecuencia por encima del rango de la audición humana, y el transductor recibe la señal de eco. El sensor determina la distancia a un objetivo mediante la medición del lapso de tiempo entre el envío y la recepción del pulso ultrasónico.

 

¿Cómo se calcula la distancia con un sensor de ultrasonidos?

El sensor de ultrasonidos fundamenta su operación en base a la física del sonido. Las señales sonoras viajan a través del aire a una velocidad aproximada de 344 m/s.

Para calcular la distancia de un objeto u obstáculo desde el sensor, se puede usar la siguiente ecuación:

Distancia = (Velocidad del sonido x Tiempo) / 2

El trayecto que recorre la señal de ultrasonido se compone de dos partes. Una inicial, que corresponde a la salida del emisor hacia el objeto, y una final, que corresponde al eco de la señal desde el objeto hacia el micrófono transductor. A mayor distancia, mayor tiempo.

Relación de tiempo y distancia en el rebote de señales de ultrasonidos

Dado que la señal recorre el doble de la distancia (desde el sensor hacia el objeto y viceversa) el tiempo es el doble de lo corresponde a la distancia real del objeto respecto al sensor. Por ello, al multiplicar el tiempo por la velocidad del sonido, el resultado debe ser divido a la mitad.

Hay que considerar que la precisión del sensor ultrasónico puede verse afectada por la temperatura y la humedad del aire en el que se está utilizando.

También es importante comprender que algunos sensores ultrasónicos no detectan algunos objetos. Esto se debe a que algunos objetos son de algun material especifico, tienen forma o posición de tal manera que la onda de sonido es absorbido y/o rebota en el objeto, y el eco no llega con suficiente energia o simplemente rebota hacia otro sitio pero no hacia el sensor ultrasónico.

Errores comunes con el uso de sensores de ultrasonidos

También es posible que el objeto sea demasiado pequeño para reflejar una cantidad suficiente de la onda de sonido para que el sensor lo detecte. Otros objetos pueden absorber la onda de sonido todos juntos (tela, alfombras, etc.), lo que significa que no hay forma de que el sensor los detecte con precisión. Estos son factores importantes a tener en cuenta al diseñar y programar, por ejemplo, un robot con un sensor ultrasónico.

 

El sensor de ultrasonidos HC-SR04

El sensor HC-SR04 es un sensor de distancia ultrasónico de bajo costo, con un rango de operación entre 2 cm a 400 cm.

Es uno de los sensores más populares, muy utilizado en una amplia variedad de proyectos. Destaca por su pequeño tamaño, bajo consumo energético, y buena precisión, además de ser muy económico.

Sensor de ultrasonidos HC-SR04

El sensor HC-SR04 posee dos transductores, un emisor y un receptor piezoeléctricos, además de la electrónica necesaria para su operación.

El funcionamiento del sensor es bastante sencillo. El emisor piezoeléctrico emite 8 pulsos de ultrasonido a una frecuencia de 40KHz luego de recibir la orden en el pin TRIGGER.

Pines del sensor de ultrasonidos HC-SR04

La señal de rebote o eco es detectada por el receptor piezoeléctrico. El pin ECHO cambia a de nivel bajo a nivel alto al finalizar la transmisión de la señal de ultrasonidos, y cambia a nivel bajo cuando la señal de eco es recibida.

Diagrama de tiempo y operación del sensor de ultrasonidos HC-SR04

El ancho del pulso es equivalente al tiempo total desde que la señal fue emitida hasta que la señal de eco fue recibida.

Angulo efectivo de funcionamiento del sensor de ultrasonidos HC-SR04

La efectividad del sensor está sujeta al ángulo relativo y a la forma en que refleja y/o absorbe la señal de ultrasonidos el material del objeto u obstáculo.

 

Características del sensor HC-SR04

  • Alimentación de 5 volts
  • Interfaz sencilla: Solamente 4 hilos Vcc, Trigger, Echo, GND
  • Rango de medición: desde 2 cm a 400 cm
  • Corriente de alimentación: 15 mA
  • Frecuencia del pulso: 40 Khz
  • Apertura del pulso ultrasónico: 15º
  • Señal de disparo: 10uS
  • Dimensiones del módulo: 45x20x15 mm.

 

Como usar el sensor HC-SR04 con la placa Arduino

Para que nuestra placa Arduino pueda usar el sensor HC-SR04, solo son necesarias cuatro líneas de conexión: 2 pines digitales, alimentación 5V y GND. De los dos pines digitales a usar, uno ira destinado como salida al pin trigger el sensor, y el otro se conectará al pin echo como entrada.

El sensor iniciara su actividad al recibir un pulso de nivel alto en su pin trigger. El sensor enviara el tren de pulsos y comenzara a medir la distancia.

En el pin echo el sensor devuelve al microcontrolador un pulso, cuyo ancho es proporcional al tiempo que tarda la señal de ultrasonidos en viajar desde el emisor al objeto y luego de vuelta al sensor.

El pin echo genera un pulso de tamaño variable, entre 150uS hasta 25mS. Si no hay obstáculos, el ancho máximo del pulso es 38mS.

Para el cálculo de la distancia se usa la siguiente formula:

Distancia (cm) = Ancho de pulso (uS) / 58

 

Conexiones entre el sensor HC-SR04 y la placa Arduino

La conexión del sensor con Arduino UNO es muy sencilla. Esta puede hacerse o en forma directa con cables, o usando un protoboard. Para nuestro diseño de pruebas, haremos las siguientes conexiones:

  • Pin 5V de Arduino con pin 5V del sensor.
  • Pin GND de Arduino con pin GND del sensor.
  • Pin 2 de Arduino con pin echo del sensor.
  • Pin 3 de Arduino con pin trigger del sensor.
Diagrama de conexiones entre el sensor HC-SR04 y placa Arduino UNO

Se puede usar para los pines trigger y echo cualquiera de los pines del 2 al 12 de la placa Arduino UNO.

 

Ejemplos de programación del sensor HC-SR04

Tenemos a disposición dos maneras de usar el sensor HC-SR04 con la placa Arduino UNO, ambas muy sencillas, aunque una lo es más que la otra.

Una manera de usar el sensor es controlarlo en forma directa sin el uso de librerías especiales. El codigo del sketch para el Arduino IDE es el siguiente:

La otra manera de usar el sensor es con la librería NewPing. Para instalarla, buscala en el gestor de librerías del Arduino IDE.

Las mejoras que ofrece la librería NewPing es a posibilidad de no solo usar el sensor HC-SR04, sino también el sensor HC-SR05. Este último se diferencia del HC-SR04 en que combina en un solo pin las señales de trigger y echo.

Adicionalmente, esta librería a ser desarrollada como una clase en C++, permite usar fácilmente varios sensores HC-SR04 o HC-SR05 a la vez. Tambien introduce mejoras en las lecturas de la distancia mediante filtros de ruido.

 

Como hacer un medidor de distancias con el sensor HC-SR04

Este es un pequeño ejemplo de un uso bastante útil del sensor de ultrasonidos HC-SR04, como detector de proximidad. Se basa en el primer programa, con las siguientes variantes:

  • Tiene definido un valor de distancia mínima
  • Cuando la distancia mínima se alcanza, se enciende el led conectado al pin 13
  • Da aviso en la consola de la alarma por proximidad

El programa toma la lectura de distancia y la compara con un valor mínimo de distancia pre definido. Cada segundo la placa Arduino UNO ordena al sensor a hacer una lectura de distancia.

Si la lectura es mayor a la distancia prefijada no hay ningún tipo de aviso. Si esta distancia es menor a la prefijada se dan los avisos de alarma mediante el led y la consola.

Una mejora a este diseño de alarma seria incorporar un buzzer a alguno de los pines libres de la placa para que dé también un aviso sonoro. El diseño modificado quedaría de la siguiente manera:

Diagrama de conexiones entre el sensor HC-SR04, el buzzer y placa Arduino UNO

En este caso, se ha colocado un buzzer conectado al pin 9 y a GND. Y el código modificado seria el siguiente:

Las aplicaciones de un sensor de proximidad son muy amplias, entre ellas, detectar presencia, cierre o apertura de puertas, detección de paso de animales domésticos, etc.

 

También te puede interesar