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.
Introducción
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.
Conexión del 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.
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.
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.
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.
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?