Sensores de Flujo de Agua para Arduino
El sensor de flujo de agua, también llamado flujómetro o caudalímetro, podemos utilizarlo en muchos proyectos con Arduino donde tengamos que mover líquidos y necesitemos medir el caudal que está pasando por nuestro sistema.
El caso típico de uso es en los sistemas de riego por aspersión o riego por goteo donde podríamos necesitar conocer cuánta agua estamos mandando a las plantas o en situaciones donde utilicemos bombas de agua y para proteger el motor necesitemos saber en todo momento si está pasando líquido por nuestra bomba.
Qué es caudal?
El caudal es la cantidad de líquido o fluido que circula a través de una cañería, tubería o manguera por unidad de tiempo. Por lo general se expresa en la unidad de volumen dividida por la unidad de tiempo (por ejemplo: l/m, l/h, m³/h, etc.).
Recordemos que un litro de agua es equivalente a un decímetro cúbico (d³), por lo que 1000 litros equivalen a un metro cúbico (m³).
Tipos de Caudalímetro
Podemos elegir entre diferentes tipos de caudalímetros o medidores de caudal según el uso que le daremos y los recursos con los que contamos. Existen caudalímetros que sirven para medir distintos fluidos (agua, combustibles, aceites) y distintos volúmenes con mayor o menor precisión, y van desde los 2 u$s hasta los 10.000 u$s. Veamos algunos tipos de sensores de flujo:
- Caudalímetro Mecánico de Turbina: Es el típico medidor de agua que tenemos todos en nuestras viviendas. El flujo hace girar un molino cuyo eje mueve un contador mecánico que acumula las lecturas. Al ser mecánico no sirve para arduino.
- Caudalimetro Ultrasónico: Se utilizan en la industria y cuestan miles de dólares. Mide a través de cañerías de cualquier material el tiempo que tarda el ultrasonido en atravesar el fluido a medir.
- Caudalímetro Electromagnético: Utilizado en la industria para cañerías de hasta 40 pulgadas y altas presiones. También cuesta miles de dólares.
- Caudalímetro Electrónico a Turbina: Son de bajo costo y bastante precisos. La desventaja que tienen es que al ser intrusivos tienen alta perdida de carga y sufren alto deterioro en sus piezas, pero son los ideales para utilizar en nuestros proyectos con Arduino.
Cómo funciona el sensor de flujo con Arduino
El funcionamiento del sensor de flujo electrónico a turbina que utilizaremos con Arduino es simple y complejo a la vez. Simple por que basicamente consta de una turbina que gira al pasar el agua a través de ella, y complejo por utiliza un sensor de efecto Hall para calcular el flujo de agua. No entraremos en este artículo a describir el efecto Hall, ya que no es necesario comprenderlo para hacer un buen uso del flujómetro.
El agua circula a través del cuerpo del medidor de flujo haciendo girar la turbina o hélice que tiene dentro. Cuanto más flujo haya más rápido girarán las aspas de la turbina. Un imán situado en la turbina genera un pulso positivo cada vez que pasa por el sensor de efecto Hall. De esta forma podemos conocer las RPM que general la hélice y calcular el caudal de agua con una sencilla ecuación.
Modelos de sensores de flujo para Arduino
Son 4 los sensores de caudal más utilizados con Arduino, las mayor diferencia entre ellos es el tamaño de las roscas de conexión y por supuesto el caudal que miden, veámoslo comparativamente:
Conexión del sensor
La conección eléctrica es muy sencilla, todos los sensores de flujo tienen 3 cables: rojo y negro para positivo y GND y amarillo para la salida de los pulsos. Como es necesario utilizar interrupciones externas, podemos utilizar los pines 2 ó 3 de Arduino UNO, que son los que manejan interrupciones. Nos decidimos por el pin 2 para que funcione también el código en otras placas arduino que manejan interrupciones externas en ese pin (mega, nano, mini y micro).
Sketch Arduino
La conversión de frecuencia de pulsos (Hz) a caudal (L/min) varía entre modelos y depende de factores como la presión, la densidad de líquido e incluso del mismo caudal.
Para calcular el caudal debemos usar un factor de conversión y una formula provistos por el fabricante. Este factor de conversión sólo nos servirá de referencia, ya que en la mayoría de los casos deberemos ajustarlo realizando pruebas.
Fórmula: f(Hz) = K * Q(L/min)
Donde f es la frecuencia de pulsos, K es el factor de conversión y Q es el caudal en litros por minuto. Despejando Q en la ecuación obtenemos que Q = f/K
Factores de conversión para cada sensor de flujo según el fabricante:
Sensor de ¼»: S
Sensor de ½»: 7,5
Sensor de ¾»: 5,5
Sensor de 1″: 4,8
En el siguiente código de ejemplo usamos interrupciones para contar la cantidad de pulsos que se generan en un segundo y dividir el total por el factor de conversión para obtener el caudal de litros por minuto.
volatile int CantPulsos; //Variable que acumula los pulsos recibidos int LxM; //Variable que acumula el calculo de Litros por Minuto int pinsensor = 2; //Numero de pin donde conectamos el sensor float FacConv = 7.5; //Factor de Conversion para calcular caudal void rpm () { //Función que se ejecuta durante la interrupción CantPulsos++; //Incrementa el contador de pulsos } void setup() { pinMode(pinsensor, INPUT); //inicializa el pin digital 2 como entrada Serial.begin(9600); //inicializa el puerto serie attachInterrupt(0, rpm, RISING); //(Interrupcion 0(Pin2),funcion rpm,Flanco de subida, cuando pasa de LOW a HIGH) } void loop () { CantPulsos = 0; //Pone en 0 el contador de pulsos Interrupts(); //Habilitamos las interrupciones, equivalente a sei(); delay (1000); //Esperamos un segundo noInterrupts(); //Deshabilitamos las interrupciones, equivalente a cli(); LxM = (CantPulsos / FacConv); //Calcula los Litros por Minuto Serial.print (LxM, DEC); //Imprime la cantidad de litros por minuto Serial.print (" L/minrn"); //Imprime "L/min" y salta a una nueva linea }
En nuestra web estamos subiendo información continuamente, por lo que podrás encontrar los mejores proyectos arduino. También puedes seguir visitando esta sección eligiendo en el listado algún otro sensor que te interese.
Además del sensor de flujo tenemos información sobre otros sensores de Arduino que te pueden interesar para tus proyectos. Puedes ver mas tutoriales con ejemplos de uso de algunos de ellos: