Caudalímetro: todo lo que necesitas saber

caudalímetro

Medir el caudal de fluido o el consumo es algo importante en algunos casos, y para ello se necesita un caudalímetro. Por ejemplo, si sigues la Fórmula 1, sabrás que la FIA obliga a los equipos a usar un caudalímetro en el motor para detectar el consumo que realiza cada equipo en sus coches y así evitar posibles trampas inyectando mayor caudal para conseguir más potencia en algunos momentos o cómo se hace uso del aceite para la quema del motor…

Pero fuera de la F1 es posible que te interese contar con uno de estos dispositivos para saber qué consumo de agua o de cualquier otro líquido tiene un sistema, o también determinar el caudal de un tubo que extrae de un depósito para determinar cuando se consume, sistemas de riego para el jardín automatizados, etc. Las aplicaciones de estos elementos son muchas, el límite lo puedes poner tú mismo.

Caudalímetro o flujómetro

Como deberías saber, el caudal es la cantidad de un líquido o fluido que circula por una tubería o mangueta por unidad de tiempo. Se mide en unidades de volumen dividida por unidad de tiempo, como puede ser el litro por minuto, litro por hora, metro cúbico por hora, metros cúbicos por segundo, etc. (l/min, l/h, m³/h, …).

¿Qué es un caudalímetro?

El caudalímetro o medidor de fluido es el dispositivo que es capaz de medir esa cantidad de flujo que traviesa una tubería. Existen varios modelos y fabricantes que se pueden integrar fácilmente con Arduino. Ese caudal dependerá de varios factores, como la sección de la tubería y la presión de suministro.

Controlando esos dos parámetros y con un caudalímetro que mida el flujo, puedes tener un sofisticado sistema de control para los fluidos. Muy útil para la domótica u otros proyectos de electrónica e incluso industriales. Para los proyectos caseros, los makers cuentan con modelos muy conocidos como el YF-S201, FS300A, FS400A, etc.

Tipos de caudalímetro

En el mercado vas a encontrar varios tipos de caudalímetros o medidores de caudal según el uso que le des y el presupuesto que quieras invertir. Además, algunos de ellos son específicos para un fluido, como el agua, combustible, aceite, otros tienen mayor o menor precisión, con precios de entre unos pocos euros a los miles de euros en algunos muy avanzados a nivel industrial:

  • Caudalímetro mecánico: es un medidor muy típico que todos tienen en la casa para medir el agua que consumen en sus contadores. EL flujo hace girar una turbina que mueve un eje que va conectado a un contador mecánico que va acumulando las lecturas. Al ser mecánico, en este caso no se puede integrar con Arduino.
  • Caudalímetro de ultrasonidos: muy usados en la industria, pero extremadamente caros para uso doméstico. Puede medir el caudal mediante el tiempo que tarda un ultrasonido en atravesar el fluido que se pretende medir.
  • Caudalímetro electromagnético: se suelen usar también en la industria para tuberías de hasta las 40 pulgadas y altas presiones. Cuestan muy caros y usan un sistema electromagnético para la medición.
  • Caudalímetro electrónico de turbina: de bajo coste y muy precisos. Estos son los que puedes integrar fácilmente con tu Arduino y se usan para el ámbito doméstico también. Usan una turbina con paletas que gira al pasar el flujo de fluido a través de él y un sensor de efecto Hall calculará el flujo según las RPMs que alcance en el giro. El problema es que al ser intrusivos tienen alta pérdida de carga y sufren deterioro en sus piezas, por lo que no durarán mucho tiempo…

Teniendo en cuenta que los que nos interesan son los electrónicos, vamos a seguir estudiando estos…

Caudalímetros para Arduino y dónde comprar

Los caudalímetros de tipo electrónico usados en Arduino, como el YF-S201, YF-S401, FS300A, y FS400A, cuentan con una carcasa pástica y un rotor con paletas en su interior, como ya comenté antes. Un imán fijado al rotor y el giro de éste, por efecto Hall, determinará el caudal o consumo que está midiendo en cada momento. La salida del sensor será una onda cuadrada con una frecuencia proporcional al caudal que lo atraviesa.

El factor denominado K de conversión entre frecuencia (Hz) y caudal (l/min) depende de los parámetros que el fabricante le haya dado al sensor, por tanto, no es igual para todos. En los datasheets o información del modelo que compres tendrás estos valores para que los puedas usar en el código de Arduino. Tampoco será igual la precisión, aunque por lo general, estos para Arduino suelen variar entre el 10% por arriba o por abajo respecto al caudal actual.

Los modelos recomendados son:

  • YF-S201: tiene una conexión para tubo de 1/4″, para medir caudal entre 0.3 a 6 litros por minuto. La presión máxima que tolera es de 0.8 MPa, con temperaturas máximas del fluido de hasta 80ºC. Su voltaje funciona entre 5-18v.
  • YF-S401: en este caso, la conexión al tubo es de 1/2″, aunque siempre puedes usar conversores. El caudal que mide es de 1 a 30 l/min, con presiones de hasta 1.75 MPa y temperaturas de fluido de hasta 80ºC. Su voltaje, sin embargo, sigue siendo de 5-18v.
  • FS300A: mismo voltaje y misma temperatura máxima que los anteriores. En este caso con tuberías de 3/4″, con caudal máximo de 1 a 60 l/min y presiones de 1.2 MPa.
  • FS400A: también mantiene voltaje y temperatura máxima con respecto a sus alternativas, también el caudal máximo y presión son las mismas que para el FS300A. Lo único que varía es que el tubo es de 1 pulgada.

Debes elegir el que más te interese para tu proyecto…

Integración con Arduino: un ejemplo práctico

Arduino conectado al caudalímetro

La conexión de tu caudalímetro es muy sencilla. Suelen tener 3 cables, uno para la toma de datos sobre el flujo, y otros dos para alimentación. El de datos lo puedes conectar a la entrada de Arduino que más te convenga para luego programar el código del sketch. Y los de alimentación, uno al de 5V y otro a GND, y eso sería suficiente para que comience a funcionar.

Pero para que tenga algún tipo de función, primero hay que crear el código en Arduino IDE. Las formas de usar este sensor de flujo son muchas, y también las formas de programarlo, aunque aquí tienes un ejemplo práctico y sencillo para que comiences a ver cómo funciona:


const int sensorPin = 2;
const int measureInterval = 2500;
volatile int pulseConter;
 
// Si vas a usar el YF-S201, como en este caso, es 7.5.
//Pero si vas a usar otro como el FS300A debes sustituir el valor por 5.5, o 3.5 en el FS400A, etc.
const float factorK = 7.5;
 
void ISRCountPulse()
{
   pulseConter++;
}
 
float GetFrequency()
{
   pulseConter = 0;
 
   interrupts();
   delay(measureInterval);
   noInterrupts();
 
   return (float)pulseConter * 1000 / measureInterval;
}
 
void setup()
{
   Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING);
}
 
void loop()
{
   // Con esto se obtiene la frecuencia en Hz
   float frequency = GetFrequency();
 
   // Y con esto se calcula el caudal en litros por minuto
   float flow_Lmin = frequency / factorK;
 
   Serial.print("Frecuencia obtenida: ");
   Serial.print(frequency, 0);
   Serial.print(" (Hz)\tCaudal: ");
   Serial.print(flow_Lmin, 3);
   Serial.println(" (l/min)");
}

Y si deseas conseguir el consumo, entonces puedes usar este otro código, o combinar ambos para tener las dos cosas… Para el consumo hay que integrar con respecto al tiempo el caudal conseguido:


const int sensorPin = 2;
const int measureInterval = 2500;
volatile int pulseConter;
 
//Para el YF-S201 es 7.5, pero recuerda que lo debes modificar al factor k de tu modelo
const float factorK = 7.5;
 
float volume = 0;
long t0 = 0;
 
 
void ISRCountPulse()
{
   pulseConter++;
}
 
float GetFrequency()
{
   pulseConter = 0;
 
   interrupts();
   delay(measureInterval);
   noInterrupts();
 
   return (float)pulseConter * 1000 / measureInterval;
}
 
void SumVolume(float dV)
{
   volume += dV / 60 * (millis() - t0) / 1000.0;
   t0 = millis();
}
 
void setup()
{
   Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(sensorPin), ISRCountPulse, RISING);
   t0 = millis();
}
 
void loop()
{
   // Obtención del afrecuencia
   float frequency = GetFrequency();
 
   //Calcular el caudal en litros por minuto
   float flow_Lmin = frequency / factorK;
   SumVolume(flow_Lmin);
 
   Serial.print(" El caudal es de: ");
   Serial.print(flow_Lmin, 3);
   Serial.print(" (l/min)\tConsumo:");
   Serial.print(volume, 1);
   Serial.println(" (L)");
}

Ya sabes que en función de lo que necesites debes modificar este código, además, muy importante poner el factor K del modelo que hayas comprado o no tomará medidas reales. ¡No lo olvides!


Sé el primero en comentar

Deja tu comentario

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

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.