Si queremos construir un robot que detecte obstáculos, un medidor de nivel de líquidos o resolver cualquier otra situación que requiera la medición de distancias, tenemos a nuestra disposición una variedad de dispositivos que funcionan en base a la técnica de ultrasonidos. Uno de los mas populares, por su precio, disponibilidad y facilidad de uso es el módulo HC-SR04, ampliamente utilizado en aplicaciones con Arduino y para el cual existen varias librerías de código que nos facilitan su aplicación. En este artículo veremos como usarlo empleando Minibloq en una placa Arduino UNO.



Minibloq es un entorno de desarrollo visual sumamente apropiado para aquellos que recién comienzan a programar placas Arduino y aún no quieren sumergirse en la complejidad del lenguaje C. Permite construir los programas (“componentes” en la terminología de Minibloq) en base a una serie de módulos o bloques que se encastran en forma gráfica, permitiendo diseñar aplicaciones en forma simple y muy intuitiva. Minibloq dispone de bloques para todas las operaciones básicas que puede tener un programa Arduino y algunos mas específicos, para algunos dispositivos que se usan con frecuencia, tales como el módulo HC-SR04.

 

HC-SR04 Minibloq

Fig. 1. Grupo de bloques de sensores específicos

¿Cómo conectamos el HC-SR04?

Como se puede ver en la Fig. 2, el HC-SR04 tiene 4 pines. Vcc y GND son los de alimentación (+5V y masa) respectivamente y Trig y Echo son pines de datos. Para realizar una medición se debe aplicar un pulso en Trig y luego leer el “rebote” en Echo. Afortunadamente, usando Minibloq no debemos preocuparnos de estos detalles, ya que el módulo incluido se encarga de todo el trabajo, sólo debemos conectar Trig y Echo a dos pines digitales de la placa Arduino.

HC-SR04 pinout

Fig.2. Pines del HC-SR04

¿Cómo hacemos el programa?

Cuando usamos un bloque de Minibloq que realiza alguna operación sobre las entradas o salidas (como leer una entrada analógica o escribir en una salida digital) debemos especificar sobre que pin de la placa que estamos usando realizaremos esta operación. En el caso del bloque del sensor HC-SR04 debemos decirle en qué pines hemos conectado las señales Trig y Echo. Aquí, el módulo nos impone una limitación: como acepta un único valor, éste debe ser el pin correspondiente a Trig y Echo debe ser conectado en el pin siguiente. Así, si en nuestra placa Arduino UNO conectamos Trig en el pin 2, Echo debe estar conectado en el pin 3. Si no lo hacemos así, el módulo no será capaz de leer los datos del HC-SR04 correctamente.

HCSR04

 Fig. 3. En el módulo del sensor se debe indicar la ubicación del pin Trig y conectar Echo en el pin siguiente

En este ejemplo conectaremos el módulo de esa forma (Trig en el pin 2 y Echo en el pin 3) y agregaremos dos leds para señalización en los pines 8 y 9. En la siguiente imagen podemos ver el circuito completo hecho con Fritzing.

Medidor distancias

 Fig. 4. Circuito completo

A continuación puede verse el “componente” diseñado en Minibloq. A los fines de probar el medidor de distancias, tiene una pregunta donde se compara la distancia medida con 10 cm. Si la medida es menor o igual, se prende el led rojo (y se apaga el verde). Si por el contrario la distancia es mayor a 10 cm, se prende el led verde (y se apaga el rojo). Esta pregunta esta seguida de un retardo (siempre debe existir una demora entre dos lecturas del HC-SR04) y todo está encerrado en un bucle que se repite indefinidamente.

Componente medicion distancias

Fig. 5. El componente de prueba diseñado en Minibloq

En este video puede verse el medidor de distancias en funcionamiento. Observen como prenden los leds a medida que se acerca y aleja un objeto.

Este es sólo un ejemplo de uso de este sensor y como programarlo empleando Minibloq, a partir de aquí se puede aplicar en una infinidad de proyectos.

¿Cómo lo usarían ustedes?

Para aprender más:

Manual de uso de Minibloq

Manual de uso del HC-SR04

Página de Fritzing, para hacer el circuito

El HC-SR04 para usar en Fritzing