Sensor de nivel de agua con arduino y módulo ultrasónico Deja un comentario

Una aplicación de los sensores de ultrasonido que no parece tan obvia es la medición de nivel de líquido en un recipiente. En esta entrada te enseñaremos como puedes realizar tu propio sensor de nivel de agua usando un sensor ultrasónico HC-SR04 y tu placa arduino favorita.

Realizaremos la medición de distancia entre un sensor ultrasónico colocado en la parte superior de un recipiente y la superficie del líquido que contiene para saber en todo momento el volumen contenido en el recipiente y calcular el porcentaje de llenado.

Una vez que nuestro proyecto a escala funcione, podemos aplicar el mismo principio que veremos durante este tutorial para realizar mediciones en recipientes mas grandes. Por ejemplo la cisterna en una casa o el tanque que alimenta nuestro hogar.

Materiales necesarios para las prácticas

Para completar los ejercicios propuestos en esta página recomendamos adquirir los siguiente materiales:

Conviene también que tengamos a la mano una cubeta o recipiente de tamaño mediano, donde podamos verter el líquido que deseamos medir, con la finalidad de que comprobemos que el proyecto funciona como se espera.

Armado del circuito eléctrico de sensor de nivel de agua con arduino

Armar el circuito eléctrico es sumamente sencillo. Solamente debemos conectar el shield de LCD con teclado al arduino y la parte de la pantalla LCD quedará solucionada. Todas las señales necesarias para el correcto funcionamiento de la pantalla estarán conectadas de forma correcta. Si deseas tener más detalles sobre la conexión de una pantalla LCD alfanumérica con el arduino, te recomendamos este otro artículo.

Para el sensor ultrasónico, podemos utilizar los pines que tenemos disponibles en el shield de pantalla LCD 16×2, tal como se muestra en las fotografías a continuación. Nosotros hemos utilizado borneras miniatura, pero vale utilizar cualquier método que consideremos apropiado para la conexión de los 4 hilos. Hay que observar que la disposición de los pines sobre el shield está desplazada del orden normal.

Para este experimento, nos conviene tener alejada la parte electrónica de los líquidos, por lo que nuestra sugerencia es soldar un cable de un par de metros al sensor ultrasónico. En nuestro caso, hemos utilizado cable flexible para sistemas de alarma, que tiene convenientemente 4 hilos de colores. Nos ha quedado de la siguiente manera:

Probando el sensor ultrasónico y la pantalla LCD.

La parte crítica de este proyecto es la medición de distancia, por lo que antes de seguir con las pruebas usando agua, recomendamos probar que nuestro sensor ultrasónico realmente este funcionando correctamente utilizando el programa que se muestra a continuación.

Deberás tener el arduino conectado a la PC mediante cable USB para visualizar los datos que ingresan desde el puerto serie.

Realizando cálculos de porcentaje y volumen para nuestro medidor de nivel de agua con arduino.

Para el programa que realiza el calculo del porcentaje de llenado del recipiente, estaremos usando la función map que viene incluida en la librería estándar de arduino. Esta función nos permitirá realizar la traducción entre la distancia medida por el sensor ultrasónico y el porcentaje de llenado del recipiente.

La entrada de la función será la distancia medida por el sensor, mientras que la salida será un porcentaje en el rango de 0 a 100%. Luego utilizaremos el valor del porcentaje para calcular el total del volumen de líquido en el recipiente.

Deberemos configurar algunas cosas, dependiendo de las condiciones de nuestro recipiente. En nuestro caso, para una aplicación real, lo hemos configurado como se muestra abajo.

El programa completo queda de la siguiente forma:

Estructura y uso de la función map.

Esta función re mapea un número en un rango determinado a otro. Debemos indicarle el rango de valores que esperamos en la entrada, así como el rango de valores que esperamos en la salida. Para nuestro caso la función estará operando con valores de tipo entero de 32 bits.

Parámetros:

  • value: la variable que deseamos mapear en un rango distinto.
  • fromLow: valor bajo del rango actual.
  • fromHigh: valor alto del rango actual.
  • toLow: límite bajo del rango destino.
  • toHigh: límite alto del rango destino.

La documentación de la función map se puede encontrar en la siguiente dirección de internet:

Haciendo nuestro sensor de nivel de agua con arduino y ultrasónico más resistente.

Hasta ahora hemos logrado que nuestro proyecto de sensor de nivel de agua con arduino sea funcional y lo hemos realizado de una forma muy económica. Pero ¿que pasa si realmente deseamos aplicarlo para medir el nivel de líquido en un ambiente húmedo? La respuesta a esta pregunta es que sencillamente el sensor que hemos sugerido no es el adecuado, ya que probablemente no dure mas que unas semanas dentro de un tanque de agua.

Afortunadamente, podemos subsanar esto de forma sencilla cambiando nuestro sensor ultrasónico por un módulo capaz de soportar las condiciones de humedad como el modelo AJ-SR04M que incluye un módulo electrónico y un transductor a prueba de agua.

AJ-SR04M Sensor ultrasónico a prueba de agua

El sensor ultrasónico modelo, que se muestra en la fotografía anterior, permite ser colocado en un recipiente en condiciones de humedad, ya que el transductor empleado en este es del mismo tipo que los empleados en sensores de reversa automotrices.

Conclusión

Como hemos podido observar, para realizar un proyecto completo con arduino bastan unos cuantos componentes y un presupuesto modesto.

En este caso, hemos realizado un dispositivo capaz de ayudarnos a determinar el nivel de líquido en un recipiente mediante un sensor ultrasónico. Este proyecto podrá ampliarse de acuerdo a las necesidades de cada uno de nuestros lectores, por lo que podremos utilizarlo para enviar los datos del sensor a internet, accionar alguna bomba o mecanismo o incluso hacer sonar una alarma.

Si tienes alguna idea para la aplicación de este circuito, no dudes en compartirla con nosotros a través de los comentarios en esta página.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Enviar Whatsapp
Hola 👋
¿En qué podemos ayudarte?