Cabalímetre: tot el que cal saber

cabalímetre

Mesurar el cabal de fluid o el consum és una cosa important en alguns casos, i per a això es necessita un cabalímetre. Per exemple, si segueixes la Fórmula 1, sabràs que la FIA obliga els equips a fer servir un cabalímetre en el motor per detectar el consum que realitza cada equip en els seus cotxes i així evitar possibles trampes injectant major cabal per aconseguir més potència en alguns moments o com es fa ús de l'oli per a la crema de l'motor ...

Però fora de la F1 és possible que t'interessi comptar amb un d'aquests dispositius per saber quin consum d'aigua o de qualsevol altre líquid té un sistema, o també determinar el cabal d'un tub que extreu d'un dipòsit per determinar quan es consumeix, sistemes de reg per al jardí automatitzats, etc. les aplicacions d'aquests elements són moltes, El límit el pots posar tu mateix.

Cabalímetre o fluxòmetre

Com hauries de saber, el cabal és la quantitat d'un líquid o fluid que circula per una canonada o mangueta per unitat de temps. Es mesura en unitats de volum dividida per unitat de temps, com pot ser el litre per minut, litre per hora, metre cúbic per hora, metres cúbics per segon, etc. (L / min, l / h, m³ / h, ...).

Què és un cabalímetre?

El cabalímetre o mesurador de fluid és el dispositiu que és capaç de mesurar aquesta quantitat de flux que travessa una canonada. Hi ha diversos models i fabricants que es poden integrar fàcilment amb Arduino. Aquest cabal dependrà de diversos factors, com la secció de la canonada i la pressió de subministrament.

Controlant aquests dos paràmetres i amb un cabalímetre que mesuri el flux, pots tenir un sofisticat sistema de control per als fluids. Molt útil per a la domòtica o altres projectes d'electrònica i fins i tot industrials. Per als projectes casolans, els makers compten amb models molt coneguts com el YF-S201, FS300A, FS400A, Etc

Tipus de cabalímetre

Al mercat trobaràs diversos tipus de cabalímetres o mesuradors de cabal segons l'ús que li donis i el pressupost que vulguis invertir. A més, alguns d'ells són específics per a un fluid, com l'aigua, combustible, oli, altres tenen més o menys precisió, amb preus d'entre uns pocs euros als milers d'euros en alguns molt avançats a nivell industrial:

  • cabalímetre mecànic: És un mesurador molt típic que tots tenen a la casa per mesurar l'aigua que consumeixen en els seus comptadors. EL flux fa girar una turbina que mou un eix que va connectat a un comptador mecànic que va acumulant les lectures. A l'ésser mecànic, en aquest cas no es pot integrar amb Arduino.
  • Cabalímetre d'ultrasons: Molt usats en la indústria, però extremadament cars per a ús domèstic. Pot mesurar el cabal mitjançant el temps que triga un ultrasò en travessar el fluid que es pretén mesurar.
  • cabalímetre electromagnètic: Se solen utilitzar també en la indústria per a canonades de fins a les 40 polzades i altes pressions. Costen molt cars i fan servir un sistema electromagnètic per al mesurament.
  • Cabalímetre electrònic de turbina: De baix cost i molt precisos. Aquests són els que pots integrar fàcilment amb el teu Arduino i es fan servir per a l'àmbit domèstic també. Usen una turbina amb paletes que gira a l'passar el flux de fluid a través d'ell i un sensor d'efecte Hall calcularà el flux segons les RPMs que abast en el gir. El problema és que a l'ésser intrusius tenen alta pèrdua de càrrega i pateixen deteriorament en les seves peces, de manera que no duraran molt de temps ...

Tenint en compte que els que ens interessen són els electrònics, seguirem estudiant aquests ...

Cabalímetres per Arduino i on comprar

Els cabalímetres de tipus electrònic usats en Arduino, Com el YF-S201, YF-S401, FS300A, i FS400A, compten amb una carcassa Plàstica i un rotor amb paletes en el seu interior, com ja vaig comentar abans. Un imant fixat a el rotor i el gir d'aquest, per efecte Hall, ha de determinar el cabal o consum que està mesurant en cada moment. La sortida de l'sensor serà una ona quadrada amb una freqüència proporcional a el cabal que el travessa.

El factor anomenat K de conversió entre freqüència (Hz) i cabal (l / min) depèn dels paràmetres que el fabricant li hagi donat a el sensor, per tant, no és igual per a tothom. en els datasheets o informació sobre el model que compris tindràs aquests valors perquè els puguis fer servir en el codi d'Arduino. Tampoc serà igual la precisió, encara que en general, aquests per Arduino solen variar entre el 10% per dalt o per baix respecte a el cabal actual.

Els models recomanats són:

  • No s'ha trobat cap producte.: Té una connexió per a tub de 1/4 ", per mesurar cabal entre 0.3 a 6 litres per minut. La pressió màxima que tolera és de 0.8 MPa, amb temperatures màximes de el fluid de fins a 80ºC. El seu voltatge funciona entre 5-18v.
  • IF-S401: En aquest cas, la connexió a el tub és de 1/2 ", encara que sempre pots fer servir convertidors. El cabal que mesura és d'1 a 30 l / min, amb pressions de fins a 1.75 MPa i temperatures de fluid de fins a 80ºC. El seu voltatge, però, segueix sent de 5-18v.
  • FS300A: Mateix voltatge i mateixa temperatura màxima que els anteriors. En aquest cas amb canonades de 3/4 ", amb cabal màxim d'1 a 60 l / min i pressions de 1.2 MPa.
  • No s'ha trobat cap producte.: També manté voltatge i temperatura màxima respecte a les seves alternatives, també el cabal màxim i pressió són les mateixes que per al FS300A. L'únic que varia és que el tub és d'1 polzada.

Has de triar el que més t'interessi per al teu projecte ...

Integració amb Arduino: un exemple pràctic

Arduino connectat a l'cabalímetre

La connexió de la teva cabalímetre és molt senzilla. Solen tenir a 3 cables, un per a la presa de dades sobre el flux, i dos per a alimentació. El de dades el pots connectar a l'entrada d'Arduino que més et convingui per després programar el codi de l'esquetx. I els d'alimentació, un a el de 5V i un altre a GND, i això seria suficient perquè comenci a funcionar.

Però perquè tingui algun tipus de funció, primer cal crear el codi en Arduino IDE. Les formes d'usar aquest sensor de flux són moltes, i també les formes de programar-lo, encara que aquí tens un exemple pràctic i senzill perquè comencis a veure com 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)");
}

I si vols aconseguir el consum, Aleshores podeu fer servir aquest altre codi, o combinar tots dos per tenir les dues coses ... Per al consum cal integrar pel que fa a el temps el cabal aconseguit:

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)");
}

Ja saps que en funció del que necessitis has de modificar aquest codi, a més, molt important posar el factor K de el model que hagis comprat o no prendrà mesures reals. No ho oblidis!