Bombear agua con arduino es algo que no parece apasionante. Resulta paradójico hablar de robótica educativa y a la vez de aire acondicionado. Sin embargo, una vez planteado y resuelto el problema que vamos a analizar, podremos comprender la gran versatilidad de arduino.

Como vimos en una entrada anterior, utilizaremos arduino para bombear los condensados de agua del aire acondicionado.

Vamos a desarrollar el problema y lo vamos a resolver, planteando la situación y definiendo los componentes y la programación.

El problema: bombear agua con arduino

Recogemos los condensados del aire acondicionado en un depósito. Cuando este se llena, nos interesa llevar el agua a un depósito mayor.

Este segundo depósito se termina llenando. Debemos, por tanto, vaciarlo, pero algo nos tiene que avisar para no estar pendiente de él todo el tiempo. El aviso debe ser continuo hasta que se vacíe el depósito. Una vez lleno, retiramos manualmente el tapón, tiramos el agua y comienza de nuevo el ciclo.

Material necesario

El material para hacer el montaje que se expone es el siguiente (ver además fotografía del principio):

  • Arduino UNO
  • Bomba de agua
  • Zumbador
  • Sensor de distancia SR-HC04
  • Sensor de nivel EK1195
  • Placa de prototipos (protoboard)
  • Transistor BC547
  • Diodo 1N4001
  • Resistencia de 220 Ω (para transistor)
  • Varios cables de conexión
  • Portapilas de alimentación conexión jack para arduino
  • 70 cm de manguera de plástico

Además, serán necesarios dos bidones de plástico de 5 litros, unas tijeras o cúter.

Bombear agua con arduino: entradas del proyecto

Las entradas proporcionan la información que va a requerir nuestro sistema (la placa de arduino) para tomar las decisiones necesarias para la resolución del problema tal y como lo hemos planteado.

1. Detección del nivel de agua del depósito que recibe los condensados

Será nuestra primera entrada y, como tal, la proporciona un sensor. En nuestro caso, hemos seleccionado el sensor de ultrasonidos HC-SR04.

Debido al funcionamiento de este sensor, para su conexión hacen falta dos pines de arduino, uno de ellos debe estar configurado como salida (pin trigger, el que lanza el ultrasonido), y el otro como entrada (pin echo, el que recoge la onda de sonido rebotada). Además, hay que alimentar el sensor conectándolo a 5V y a tierra (GND o 0V).

bombear agua con arduino

Sensor de ultrasonidos utilizado para medir distancias

Esto no ofrece ninguna dificultad, sólo hay que conectarlos a sus pines correspondientes. El cálculo de la distancia a la superficie del agua lo realiza arduino de forma automática, con unas líneas de código que están disponibles en Internet o bien en el propio software de programación gráfica, como veremos.

2. Detección de nivel del segundo depósito

Cuando el segundo depósito (de almacenamiento) está a punto de llenarse, el agua toca el sensor de nivel que hemos instalado (EK1195).

bombear agua con arduino

Sensor de nivel, para medición por contacto con el agua

Como todos los sensores, lo alimentamos desde la placa, proporcionando una señal de entrada a arduino de tipo analógico: va a variar en función de la cantidad de agua que recubra la lengüeta del sensor.

Se conecta a una entrada analógica (A0 por ejemplo).

Podríamos haber utilizado otro sensor de ultrasonidos, pero el tapón tiene un espacio reducido para el sensor y la tubería que debe entrar. Esta interferiría con toda seguridad en la medida del sensor.

Cuáles son las salidas del problema

1. En función de las condiciones de funcionamiento, la bomba del primer depósito recibe una orden de arduino para arrancar o parar. Es, por tanto, una salida digital.

2. Por otra parte, al llenarse el segundo depósito, arduino activa un zumbador. Es una salida digital.

Resumen entradas y salidas

E/S E. Analógica E. Digital S. Analógica S. Digital
Sensor nivel SR-HC04 0 1 0 1
Sensor nivel EK1195 1 0 0 0
Zumbador 0 0 0 1
Bomba 0 0 0 1

Debemos usar dos entradas de arduino (una de ellas analógica) y 3 salidas.

Bombear agua con arduino: conexionado

Tenemos las condiciones y la instalación preparada. El conexionado de todos los elementos se observa en el esquema siguiente (hemos usado un sensor de humedad como sensor de nivel, pero el conexionado es igual a la entrada analógica, según la foto que hemos puesto arriba).

Hemos conectado el detector de nivel a los pines 2 (echo) y 3 (trig), el detector de nivel del segundo depósito en A0, el zumbador en el pin 6 y la activación de la bomba en el pin 4.

Con relación a la bomba, el pin 4 está conectado a la base de un transistor BC547. Cuando arduino pone nivel alto (5 V) en el pin 4, el transistor conduce y la bomba se alimenta desde la placa a 5 V.

bombear agua con arduino

Esquema de conexionado de los componentes (fritzing)

Nota (actualización nov-2020): puede utilizarse la siguiente conexión para la bomba:

Falta la programación del sistema que es de relativa sencillez. Presentamos a continuación cómo se programaría con el software gráfico visualino, específico para arduino y con mblock, que utilizamos para programar los robots mbot de la casa makeblock.

Bombear agua con arduino: la programación

Hemos definido las entradas y las salidas, podemos seleccionar los pines de arduino donde vamos a conectarlas. Ahora hay que hacer el programa que nos permita retirar el agua de condensados y activar una alarma cuando el depósito de almacenamiento se llene.

Cuando la distancia es menor que 5 cm, nuestro programa pone en marcha la bomba. Esta se para cuando la distancia es tal que el depósito está casi vacío (por ejemplo, cuando el sensor mide 15 cm). Hay que tener cuidado en no vaciar por completo el depósito para evitar que la bomba trabaje en vacío (sin agua la bomba se rompe)

Además, cuando el segundo depósito se llena, se activa el otro sensor de nivel y arduino da la orden de parada a la bomba y activa un zumbadro.

En resumen, arduino actúa de una forma u otra en función de la información que le llega (las entradas):

  • La primera entrada es del detector de ultrasonidos: en función de la distancia medida pone en marcha o para la bomba
  • La segunda entrada es la que indica el llenado del segundo depósito. Genera dos señales de salida: la orden de paro de la bomba para evitar el rebosamiento y una alarma de aviso.

Programación con visualino

En la siguiente imagen vemos cómo queda el programa:

bombear agua con arduino

Programa realizado con visualino

El bloque BAT – Sensor de ultrasonidos ya incorpora todas las instrucciones necesarias para que el sensor funcione correctamente.

Conseguir bombear agua con arduino no parece un trabajo muy complicado.

Visualino permite programar mediante bloques la placa de arduino. Está disponible en español.

Programación con mblock

Seguidamente vemos cómo se hace el programa:

bombear agua con arduino

Programa realizado con mblock

Se puede observar que algunos de los parámetros numéricos no son iguales en los dos programas. En las pruebas de la instalación es normal hacer ajustes según lo que se quiera mostrar o la respuesta que se quiera obtener del sistema.

mblock es el software de programación utilizado para programar mbot. También está disponible en español.

Podéis ver en una entrada anterior el vídeo de funcionamiento de la instalación final.

A partir de ciertas condiciones, hemos conseguido bombear agua con arduino, un montaje que se puede llevar a la práctica. El paso siguiente sería la optimización de los componentes y la instalación.

Bombear agua con arduino: componentes STEM

Hemos hablado a menudo en este blog del acrónimo inglés STEM que representa a un conglomerado de disciplinas que convergen en la robótica educativa. Vamos a identificar en nuestro montaje dónde está presente cada una de estas cuatro disciplinas.

Física

El emisor de ultrasonidos. El sensor emite una onda de sonido y recoge la onda rebotada. El sonido es una onda longitudinal de presión. El oído humano solo puede escuchar una banda de frecuencias, por encima y por debajo de esa banda de frecuencias, no puede oírlas.

El sonido presenta una velocidad constante, por lo que se le puede aplicar S=v t. Es la ecuación del movimiento rectilíneo uniforme, a partir de la cual se calcula la distancia al nivel de agua.

Matemáticas

La velocidad del sonido es de unos 340 m/s. Arduino mide el tiempo que tarda en llegar el pulso y lo divide entre 2 (ida y vuelta). Después calcula el cociente entre el tiempo y la velocidad, de acuerdo con la ecuación anterior.

Se nos ocurre el siguiente problema:

Imaginemos que lanzamos una taza desde un piso y tardamos en escuchar el destrozo (si tenemos buen oído y no hay ruido) 5 segundos, ¿qué altura tiene el edificio?.

Un interesante problema donde aparece la velocidad del sonido, que resolvimos en alguna de nuestras clases de repaso de bachillerato. La solución es 107 metros.

Ingeniería

Una de las estrellas de las instalaciones de fábricas de todo tipo son las bombas de agua. Su presencia en el montaje propuesto ya justifica que se la incluya en este apartado.

La pequeña bomba que he utilizado en el montaje no puede trabajar en vacío. Si la conectamos sin estar sumergida los álabes se rompen y es inservible.

Las bombas sumergidas suelen utilizarse en pozos de grandes profundidades. Las bombas de aspiración solo pueden aspirar hasta los 10 metros de profundidad.

Por otra parte, cuando se desconecta la bomba (que recordemos, tiene una bobina en su interior), la tensión pasa de 5V a 0V, lo que puede generar intensidades que dañen al transistor o a la placa. Hay que situar un diodo de protección (1N4007, por ejemplo) inversamente polarizado entre los contactos de la bomba. Es decir, el cátodo (banda blanca del diodo) al polo + (5V) y el ánodo a tierra (GND). Observad el esquema y la foto:

bombear agua con arduino

Instalación de un diodo de protección entre bornas (contactos) del motor de la bomba

Finalmente, ingeniería y matemáticas se unen en la creación de algoritmos que permiten resolver los problemas. El algoritmo permite resolver correctamente las condiciones que hemos impuesto a nuestro montaje. Es cómo construir el programa de control para que todo funcione como queremos. En nuestro ha resultado bastante sencillo.

Tecnología

Aquí entramos en el terreno de la fabricación, uso de componentes y montaje de los sistemas. Montaje también de las instalaciones y la mejor forma de situar los componentes.

Al realizar la programación de control de la instalación podemos pensar que funciona, incluso después de realizar un prototipo.

Pero la realidad debe tener en cuenta los «imponderables» de la tecnología utilizada. En  nuestro caso, es decisivo el retraso que introducimos en el programa para que la medida del sensor de profundidad sea correcta. Si no se pone, puede ocurrir que la bomba arranque y pare y no funcione correctamente.