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.Vista interior del caudalímetro de turbina con sensor de Efecto Hall

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:

Mejor Precio
ARCELI YF-S201 1-30L / min Contador de Sala de Flujo de Agua/Sensor Control de Agua Interruptor de caudal de Agua Medidor de Flujo Medidor de caudalímetro
Medidor de Flujo de Agua Industrial, Caudalímetro de Control Hall YF ‑ DN32 G1.25in, Interruptor del Sensor de Flujo de Agua DC3‑24V, para Calentadores de Agua, Bebederos
Más Vendido
Sensor de flujo de agua, 1pcs EFS-04P Interruptor de flujo de agua de plástico, AC 220V Sensor de agua vertical/horizontal magnético
Modelo
ARCELI YF-S201 1-30L / min Contador de Sala de Flujo de Agua/Sensor Control de Agua Interruptor de caudal de Agua Medidor de Flujo Medidor de caudalímetro
Medidor de Flujo de Agua Industrial, Caudalímetro de Control Hall YF ‑ DN32 G1.25in, Interruptor del Sensor de Flujo de Agua DC3‑24V, para Calentadores de Agua, Bebederos
Sensor de flujo de agua, 1pcs EFS-04P Interruptor de flujo de agua de plástico, AC 220V Sensor de agua vertical/horizontal magnético
Opiniones
-
-
-
Precio
7,99 EUR
32,10 EUR
11,49 EUR
Mejor Precio
ARCELI YF-S201 1-30L / min Contador de Sala de Flujo de Agua/Sensor Control de Agua Interruptor de caudal de Agua Medidor de Flujo Medidor de caudalímetro
Modelo
ARCELI YF-S201 1-30L / min Contador de Sala de Flujo de Agua/Sensor Control de Agua Interruptor de caudal de Agua Medidor de Flujo Medidor de caudalímetro
Opiniones
-
Precio
7,99 EUR
Medidor de Flujo de Agua Industrial, Caudalímetro de Control Hall YF ‑ DN32 G1.25in, Interruptor del Sensor de Flujo de Agua DC3‑24V, para Calentadores de Agua, Bebederos
Modelo
Medidor de Flujo de Agua Industrial, Caudalímetro de Control Hall YF ‑ DN32 G1.25in, Interruptor del Sensor de Flujo de Agua DC3‑24V, para Calentadores de Agua, Bebederos
Opiniones
-
Precio
32,10 EUR
Más Vendido
Sensor de flujo de agua, 1pcs EFS-04P Interruptor de flujo de agua de plástico, AC 220V Sensor de agua vertical/horizontal magnético
Modelo
Sensor de flujo de agua, 1pcs EFS-04P Interruptor de flujo de agua de plástico, AC 220V Sensor de agua vertical/horizontal magnético
Opiniones
-
Precio
11,49 EUR

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).

Importante: todos los sensores de flujo tienen en la carcasa una flecha que indica el sentido en el que debe circular el liquido. Debe respetarse el sentido para que el sensor funcione correctamente y no se dañe.

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: