En este tutorial explicaremos como utilizar un sensor ultrasónico HC-SR04 y arduino para la medición de distancia. Ya hemos explicado con anterioridad como se realiza la instalación de una librería para poder controlar algún periférico con nuestro arduino, en esta ocasión utilizaremos lo aprendido en aquel tutorial para ayudarnos a poner en funcionamiento un sensor ultrasónico HC-SR04.

El sensor HC-SR04 es un módulo que incorpora un par de transductores de ultrasonido que se utilizan de manera conjunta para determinar la distancia del sensor con un objeto colocado enfrente de este. Quizá la característica más destacada del HC-SR04 es que puede ser adquirido por una baja suma de dinero y esto mismo lo ha hecho muy popular. Afortunadamente el módulo HC-SR04 es bastante fácil de utilizar a pesar de su bajo precio y no demanda grán cantidad de trabajo ponerlo a funcionar, mucho menos si utilizamos una librería para sensores ultrasónicos.

Como todas las cosas en el mundo de la programación, poner en marcha este sensor es una meta a la cual se puede llegar de mil maneras distintas. En este artículo te enseñaremos a hacerlo funcionar de la forma que consideramos más rápida y sencilla: Utilizando una librería ya hecha para este fin que esta accesible en internet.

En la foto de portada observamos el sensor ultrasónico HC-SR04 y Arduino UNO con los que hemos montado el circuito de prueba.

Conceptos Básicos.

Primeramente debemos armar el circuito de prueba para el sensor, el cual consiste únicamente en proveer alimentación al módulo y asignarle 2 pines de interfaz con el Arduino (echo y trigger). Este tipo de módulos para medición de distancia por ultrasonidos se divide en 2 grandes grupos:  Interfaz mediante pulso de eco e interfaz serial (I2C o UART). El HC-SR04 cae dentro del primer grupo, por lo que explicaremos su funcionamiento brevemente en las siguientes lineas.

La interfaz digital se logra mediante 2 pines digitales: el pin de trigger (disparo) y echo (eco).

  • El primero recibe un pulso de habilitación de parte del microcontrolador, mediante el cual se le indica al módulo que comience a realizar la medición de distancia.
  • A través de un segundo pin (echo) el sensor “muestra” al microcontrolador un puso cuyo ancho es proporcional al tiempo que tarda el sonido en viajar del transductor al obstaculo y luego de vuelta al módulo.

Mediante una sencilla formula puede estimarse entonces la distancia entre el sensor y el obstáculo si se conoce el tiempo de viaje del sonido así como la velocidad de propagación de la onda sonora. La siguiente imagen muestra los pulsos recibidos y enviados por el sensor, de acuerdo a la hoja de datos elaborada por Itead Studio.

Señales generadas por el sensor HC-SR04 y arduino

Como se puede observar, el HC-SR04 genera un pulso en el pin marcado como “echo” cuya duración es proporcional a la distancia medida por el sensor. Para obtener la distancia en centímetros, solamente debemos dividir el tiempo en microsegundos entre 58 o para obtener la distancia.

Materiales Necesarios.

En la foto del artículo vemos los materiales que hemos utilizado y que tenemos disponibles en nuestra tienda virtual. Nosotros utilizamos nuestro protoboard, pero vale cualquier otra forma de montar y conectar los componentes, incluso un simple juego de cables dupont funciona perfecto, con la ventaja de resultar mucho más compacto.

Diagrama de conexiones para el HC-SR04 y arduino

El siguiente circuito es el mínimo necesario para hacer funcionar el sensor ultrasonido HC-SR04 y Arduino. Podemos utilizar cables Dupont o bien utilizar un protoboard y alambres.

hc-sr04 y arduino

Cabe aclarar que nosotros hemos utilizado los pines 11 y 12, pero vale cualquier otra combinación de pines. No hay mucho más que decir, ya que es bastante fácil de conectar, solamente tener cuidado con la polaridad y posición de las señales.

El sketch para sensor ultrasónico HC-SR04 y Arduino.

El primer paso es descargar e instalar la librería newPing desde el playground de Arduino. El proceso de instalación de una librería ya lo hemos cubierto en un tutorial anterior y no lo expondremos nuevamente en esta entrada. El enlace de descarga de la librería y su documentación se encuentran en esta web:

Ya que tengamos la librería NewPing instalada, copiamos el siguiente código para probar su funcionamiento. Hay que recordar que si cambiamos los pines de conexión con el sensor, es necesario retocar las primeras lineas para que las señales puedan llegar a los pines correspondientes.

Los pines de conexión deben coincidir perfectamente para que el sensor HC-SR04 y Arduino puedan funcionar en conjunto, de lo contrario, podemos causar daños y sobrecalentamiento a cualquiera de las dos placas: Arduino o sensor.

El código realizado con la librería NewPing queda bastante sencillo y además de aceptar el sensor ultrasónico HC-SR04 permite utilizar la gran mayoría de los sensores que utilizan interfaz del tipo Interfaz “con pulsos” con 3 y 4 pines.

Programación para usar el HC-SR04 sin librería

Puede resultarnos util, al menos para satisfacer la curiosidad, poner a funcionar el sensor HC-SR04 sin la necesidad de usar una librería. El programa que mostramos a continuación permite hacer justamente eso:

Conclusión

Como hemos visto a lo largo de este artículo, utilizar el sensor HC-SR04 y arduino es bastante sencillo. Con el uso de una librería se facilita en gran medida el desarrollo de aplicaciones. Sin embargo, podemos desarrollar también nuestro propio código que optimice el uso del tiempo del CPU, utilizando incluso interrupciones y eventos. Si eres de esas personas curiosas que siempre quieren saber como funcionan las cosas, en otra ocasión desarrollamos un programa para microcontroladores PIC en lenguaje C que puedes revisar para ver como funciona el algoritmo de comunicación con este tipo de sensores.

Si requiere factura de su producto el pago se tiene que realizar a nuestra cuenta en Santander.