- Components necessaris
- Sensor de cabal d'aigua YFS201
- Esquema de connexions
- Codi del sensor de cabal d’aigua Arduino
- El sensor de cabal d'Aigua Arduino funciona
Si alguna vegada heu visitat empreses de fabricació a gran escala, el primer que notareu és que totes estan automatitzades. Les indústries de begudes no alcohòliques i les indústries químiques han de mesurar i quantificar constantment els líquids que manipulen durant aquest procés d’automatització, i el sensor més comú que s’utilitza per mesurar el flux d’un líquid és un sensor de cabal. Mitjançant l’ús d’un sensor de flux amb un microcontrolador com Arduino, podem calcular el cabal i comprovar el volum de líquid que ha passat per una canonada i controlar-lo segons sigui necessari. A part de les indústries manufactureres, els sensors de cabal també es poden trobar al sector agrícola, processament d’aliments, gestió de l’aigua, indústria minera, reciclatge d’aigua, màquines de cafè, etc. i sistemes de reg intel·ligent on hem de controlar i controlar el flux de líquids.
En aquest projecte, construirem un sensor de cabal d’aigua mitjançant Arduino. Interfocarem el sensor de cabal d’aigua amb Arduino i LCD i el programarem per mostrar el volum d’aigua que ha passat per la vàlvula. Per a aquest projecte en concret, utilitzarem el sensor de cabal d’aigua YF-S201, que utilitza un efecte hall per detectar el cabal del líquid.
Components necessaris
- Sensor de cabal d'aigua
- Arduino UNO
- LCD (16x2)
- Connector amb roscat intern
- Connexió de cables
- Tub
Sensor de cabal d'aigua YFS201
El sensor té 3 cables VERMELL, GROC i NEGRE tal com es mostra a la figura següent. El cable vermell s’utilitza per a tensions d’alimentació que oscil·len entre 5V i 18V i el cable negre està connectat a GND. El fil groc s’utilitza per a la sortida (impulsos), que pot llegir una MCU. El sensor de cabal d’aigua consisteix en un sensor de roda dentada que mesura la quantitat de líquid que l’ha passat.

El funcionament del sensor de cabal d’aigua YFS201 és senzill d’entendre. El sensor de cabal d’aigua funciona segons el principi de l’efecte hall. L’efecte Hall és la producció de la diferència de potencial a través d’un conductor elèctric quan s’aplica un camp magnètic en la direcció perpendicular a la del flux de corrent. El sensor de cabal d’aigua s’integra amb un sensor d’efecte hall magnètic, que genera un impuls elèctric a cada revolució. El seu disseny és de tal manera que el sensor d’efecte hall queda segellat de l’aigua i permet que el sensor es mantingui segur i sec.
A continuació es mostra la imatge del mòdul del sensor YFS201.

Per connectar-me amb el sensor de flux de canonada i aigua, he utilitzat dos connectors amb rosca femella, tal com es mostra a continuació.

Segons les especificacions de YFS201, el corrent màxim que treu a 5V és de 15 mA i el cabal de treball és d’1 a 30 litres / minut. Quan el líquid flueix a través del sensor, entra en contacte amb les aletes de la roda de la turbina, que es col·loca en el recorregut del líquid que flueix. L'eix de la roda de la turbina està connectat a un sensor d'efecte hall. A causa d'això, sempre que l'aigua flueix a través de la vàlvula genera impulsos. Ara, tot el que hem de fer és mesurar el temps dels avantatges o comptar el nombre de polsos en 1 segon i després calcular els cabals en litres per hora (L / Hr) i després utilitzar una fórmula de conversió senzilla per trobar el volum de l’aigua que hi havia passat. Per mesurar els impulsos, farem servir Arduino UNO. La imatge següent mostra el pinout del sensor de cabal d’aigua.
Esquema de connexions
A continuació es mostra el diagrama del circuit del sensor de cabal d’aigua per connectar un sensor de cabal d’aigua i un LCD (16x2) amb Arduino. Si no coneixeu Arduino i LCD, podeu llegir aquest article sobre interfícies Arduino i LCD.

La connexió del sensor de cabal d'aigua i del LCD (16x2) amb l'Arduino es dóna a continuació en format de taula. Tingueu en compte que el pot està connectat entre 5V i GND i que el pin 2 del pot està connectat amb el pin V0 de la pantalla LCD.
|
S. NO |
Pin del sensor de cabal d'aigua |
Pins Arduino |
|
1 |
Filferro vermell |
5V |
|
2 |
Negre |
GND |
|
3 |
Groc |
A0 |
|
S.No |
LCD |
Arduino |
|
1 |
Vss |
GND (rail de terra de tauler) |
|
2 |
VDD |
5V (carril positiu de la taula) |
|
3 |
Per a la connexió amb V0, consulteu la nota anterior |
|
|
4 |
RS |
12 |
|
5 |
RW |
GND |
|
6 |
E |
11 |
|
7 |
D7 |
9 |
|
8 |
D6 a D3 |
3 a 5 |
Vaig utilitzar un tauler de control i, un cop feta la connexió segons el diagrama del circuit que es mostra més amunt, la configuració de les meves proves semblava així.

Codi del sensor de cabal d’aigua Arduino
El codi Arduino complet del sensor de cabal d’aigua es dóna a la part inferior de la pàgina. L’explicació del codi és la següent.
Estem utilitzant el fitxer de capçalera de la pantalla LCD, que facilita la nostra interfície amb la pantalla Arduino, i els pins 12,11,5,4,3,9 estan assignats per a la transferència de dades entre la pantalla LCD i Arduino. El pin de sortida del sensor està connectat al pin 2 d'Arduino UNO.
freqüència de flux int volàtil; // Mesura els impulsos del sensor de cabal // Calculat litres / hora flotant vol = 0,0, l_minut; sensor de flux de caràcters sense signar = 2; // Entrada del sensor sense signar llarg currentTime; cloopTime sense signar; #incloure
Aquesta funció és una rutina de servei d’interrupció i es cridarà sempre que hi hagi un senyal d’interrupció al pin2 d’Arduino UNO. Per a cada senyal d’interrupció, el recompte de la variable flow_frequency s’incrementarà en 1. Per obtenir més detalls sobre les interrupcions i el seu funcionament, podeu llegir aquest article sobre les interrupcions d’Arduino.
void flow () // Funció d'interrupció { freqüència_fluència ++; }
A la configuració del buit, li diem a la MCU que el pin 2 de l’Arduino UNO s’utilitza com a INPUT donant l’ordre pinMode (pin, OUTPUT). Mitjançant l'ordre attachInterrupt, sempre que hi ha un augment del senyal al pin 2, es crida a la funció de flux. Això augmenta el recompte de la variable flow_frequency en 1. L'hora actual i cloopTime s'utilitzen perquè el codi s'executi cada 1 segon.
void setup () { pinMode (sensor de flux, INPUT); digitalWrite (sensor de flux, HIGH); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (flowensor), flow, RISING); // Configuració Interrupt lcd.clear (); lcd.setCursor (0,0); lcd.print ("mesurador de cabal d'aigua"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); TimeTime actual = millis (); cloopTime = Hora actual; }
La funció if garanteix que s'executi el codi dins de cada segon. D'aquesta manera, podem comptar el nombre de freqüències produïdes pel sensor de cabal d'aigua per segon. Les característiques del pols de cabal de la fitxa tècnica donen que la freqüència és de 7,5 multiplicada per la velocitat de cabal. Per tant, el cabal és de freqüència / 7,5. Després de trobar el cabal en litres / minut, dividiu-lo per 60 per convertir-lo en litres / segon. Aquest valor s’afegeix a la variable vol per cada segon.
bucle buit () { currentTime = millis (); // Cada segon, calcula i imprimeix litres / hora si (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // Actualitza cloopTime si (freqüència_flux! = 0) { // Freqüència de pols (Hz) = 7,5 Q, Q és el cabal en L / min. l_minute = (freqüència_fluència / 7.5); // (Freqüència de pols x 60 min) / 7,5 Q = cabal en L / hora lcd.clear (); lcd.setCursor (0,0); lcd.print ("Taxa:"); lcd.print (l_minute); lcd.print ("L / M"); l_minute = l_minute / 60; lcd.setCursor (0,1); vol = vol + l_minut; lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); freqüència_flux = 0; // Restableix el comptador Serial.print (l_minute, DEC); // Imprimir litres / hora Serial.println ("L / Sec"); }
La funció else funciona quan no hi ha cap sortida del sensor de cabal d'aigua en el període de temps donat.
else { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Taxa:"); lcd.print (freqüència_fluent); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); }
El sensor de cabal d'Aigua Arduino funciona
Al nostre projecte, vam connectar el sensor de cabal d’aigua a una canonada. Si la vàlvula de sortida de la canonada està tancada, la sortida del sensor de cabal d’aigua és zero (sense polsos). No es veurà cap senyal d’interrupció al pin 2 de l’Arduino i el recompte de la freqüència de flux serà zero. En aquesta condició, el codi que està escrit dins del bucle else funcionarà.

Si s’obre la vàlvula de sortida de la canonada. L’aigua flueix pel sensor, que al seu torn fa girar la roda dins del sensor. En aquesta condició, podem observar impulsos, que es generen a partir del sensor. Aquests impulsos actuaran com a senyal d’interrupció a l’Arduino UNO. Per a cada senyal d’interrupció (vora ascendent), el recompte de la variable flow_frequency s’incrementarà en un. La variable de temps actual i cloopTIme garanteix que per cada segon es pren el valor de la freqüència de flux per al càlcul del cabal i del volum. Un cop finalitzat el càlcul, la variable flow_frequency es posa a zero i s’inicia tot el procediment des del principi.
El funcionament complet també es pot trobar al vídeo enllaçat a la part inferior d'aquesta pàgina. Espero que us hagi agradat el tutorial i us hagi agradat alguna cosa útil, si teniu algun problema, deixeu-los a la secció de comentaris o utilitzeu els nostres fòrums per a altres qüestions tècniques.
