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: