- Komponenter kreves
- YFS201 vannstrømssensor
- Kretsdiagram
- Arduino vannstrømsensorkode
- Arduino vannstrømssensor fungerer
Hvis du noen gang har besøkt store produksjonsbedrifter, er det første du vil merke at de alle er automatiserte. Brusindustri og kjemisk industri må hele tiden måle og kvantifisere væskene de håndterer i løpet av denne automatiseringsprosessen, og den vanligste sensoren som brukes til å måle strømmen av en væske er en strømningssensor. Ved å bruke en strømningssensor med en mikrokontroller som Arduino, kan vi beregne strømningshastigheten, og sjekke volumet av væske som har gått gjennom et rør, og kontrollere det etter behov. Bortsett fra produksjonsindustrien, kan det også finnes strømningssensorer i landbrukssektoren, matforedling, vannforvaltning, gruveindustri, vanngjenvinning, kaffemaskiner osv. Videre vil en vannstrømssensor være et godt tillegg til prosjekter som Automatic Water Dispenser. og Smart Irrigation Systems hvor vi trenger å overvåke og kontrollere væskestrømmen.
I dette prosjektet skal vi bygge en vannstrømssensor ved hjelp av Arduino. Vi vil koble vannstrømssensoren med Arduino og LCD, og programmere den for å vise volumet vann som har passert gjennom ventilen. For dette spesielle prosjektet skal vi bruke vannstrømningssensoren YF-S201, som bruker en halleffekt for å registrere væskens strømningshastighet.
Komponenter kreves
- Vannstrømningssensor
- Arduino UNO
- LCD (16x2)
- Kobling med innvendig gjenging
- Koble ledninger
- Rør
YFS201 vannstrømssensor
Sensoren har 3 ledninger RØD, GUL og SVART som vist i figuren nedenfor. Den røde ledningen brukes til forsyningsspenning som varierer fra 5V til 18V, og den svarte ledningen er koblet til GND. Den gule ledningen brukes til utgang (pulser), som kan leses av en MCU. Vannstrømningssensoren består av en hjulhjulsensor som måler mengden væske som har passert gjennom den.
Arbeidet til vannstrømssensoren YFS201 er enkel å forstå. Vannstrømningssensoren fungerer på prinsippet om halleffekt. Hall-effekt er produksjonen av potensialforskjellen over en elektrisk leder når et magnetfelt påføres i retningen vinkelrett på strømmen. Vannstrømningssensoren er integrert med en magnetisk hall-effektføler, som genererer en elektrisk puls med hver omdreining. Dens design er på en slik måte at hall-effekt-sensoren er forseglet fra vannet, og gjør at sensoren kan holde seg trygg og tørr.
Bildet av sensormodulen YFS201 alene er vist nedenfor.
For å koble til røret og vannstrømssensoren brukte jeg to kontakter med en innvendig gjeng som vist nedenfor.
I henhold til YFS201 spesifikasjoner er den maksimale strømmen den trekker ved 5V 15mA, og arbeidsstrømningshastigheten er 1 til 30 liter / minutt. Når væsken strømmer gjennom sensoren, kommer den i kontakt med finnerene på turbinhjulet, som plasseres i banen til den flytende væsken. Skaftet på turbinhjulet er koblet til en hall-effekt-sensor. På grunn av dette genererer det pulser når det strømmer vann gjennom ventilen. Nå er alt vi trenger å gjøre å måle tiden for plussene eller å telle antall pulser i løpet av 1 sekund og deretter beregne strømningshastighetene i liter per time (L / Hr) og deretter bruke enkel konverteringsformel for å finne volumet av vannet som hadde gått gjennom det. For å måle pulser, skal vi bruke Arduino UNO. Bildet nedenfor viser pinout av vannstrømssensoren.
Kretsdiagram
Den vannstrømningsføler kretsdiagram er vist nedenfor for å danne grensesnitt en vannstrømningssensor og LCD (16x2) med Arduino. Hvis du ikke er kjent med Arduino og LCD-skjermer, kan du vurdere å lese denne Interfacing Arduino og LCD-artikkelen.
Tilkoblingen av vannstrømssensoren og LCD (16x2) med Arduino er gitt nedenfor i tabellformat. Merk at potten er koblet mellom 5V og GND, og pottens pinne 2 er koblet til V0-pinnen på LCD-skjermen.
S.NO |
Water Flow sensor pin |
Arduino Pins |
1 |
Red Wire |
5V |
2 |
Svart |
GND |
3 |
Gul |
A0 |
S. nr |
LCD |
Arduino |
1 |
Vss |
GND (bakken på brødbrett) |
2 |
VDD |
5V (Positiv skinne på brødbrettet) |
3 |
For tilkobling til V0 sjekk merknaden ovenfor |
|
4 |
RS |
12 |
5 |
RW |
GND |
6 |
E |
11 |
7 |
D7 |
9 |
8 |
D6 til D3 |
3 til 5 |
Jeg brukte et brødbrett, og når tilkoblingen var gjort i henhold til kretsskjemaet vist ovenfor, så testoppsettet mitt ut som dette.
Arduino vannstrømsensorkode
Den komplette Arduino-koden for vannføring er gitt nederst på siden. Forklaringen på koden er som følger.
Vi bruker toppteksten på LCD-skjermen, noe som gjør det enklere for oss å grense LCD-skjermen med Arduino, og pinnene 12,11,5,4,3,9 er tildelt for dataoverføring mellom LCD og Arduino. Sensorens utgangsstift er koblet til pin 2 på Arduino UNO.
flyktig int flow_frequency; // Måler strømningssensorpulser // Beregnet liter / time flytevolum = 0,0, l_minute; usignert røyesensor = 2; // Sensorinngang usignert lang strømtid; usignert lang cloopTime; #inkludere
Denne funksjonen er en avbruddsrutin, og dette vil bli kalt når det er et avbruddssignal på pin2 i Arduino UNO. For hvert avbruddssignal økes antallet av variabel strømningsfrekvens med 1. For mer informasjon om avbrudd og hvordan de fungerer, kan du lese denne artikkelen om Arduino-avbrudd.
void flow () // Interrupt function { flow_frequency ++; }
I tomrumsoppsettet forteller vi MCU at pinnen 2 til Arduino UNO brukes som INNGANG ved å gi kommandoen pinMode (pin, OUTPUT). Ved å bruke attachInterrupt-kommandoen, når det er en økning i signalet ved pin 2, kalles strømningsfunksjonen. Dette øker antallet i variabel flow_frequency med 1. Gjeldende tid og cloopTime brukes til at koden skal kjøre hvert 1. sekund.
ugyldig oppsett () { pinMode (flowsensor, INPUT); digitalWrite (flowsensor, HIGH); Serial.begin (9600); lcd.begin (16, 2); attachInterrupt (digitalPinToInterrupt (flowsensor), flow, RISING); // Oppsett Interrupt lcd.clear (); lcd.setCursor (0,0); lcd.print ("Water Flow Meter"); lcd.setCursor (0,1); lcd.print ("Circuit Digest"); currentTime = millis (); cloopTime = currentTime; }
Hvis-funksjonen sørger for at koden i den kjører for hvert sekund. På denne måten kan vi telle antall frekvenser som produseres av vannstrømssensoren per sekund. Strømningshastighetspulsegenskapene fra databladet er gitt at frekvensen er 7,5 ganget med strømningshastigheten. Så strømningshastigheten er frekvens / 7,5. Etter å ha funnet strømningshastigheten i liter / minutt, del den med 60 for å konvertere den til liter / sek. Denne verdien legges til vol-variabelen for hvert sekund.
ugyldig sløyfe () { currentTime = millis (); // Beregn og skriv ut liter / time hvert sekund hvis (currentTime> = (cloopTime + 1000)) { cloopTime = currentTime; // Oppdaterer cloopTime hvis (flow_frequency! = 0) { // Pulsfrekvens (Hz) = 7.5Q, Q er strømningshastighet i L / min. l_minute = (flytfrekvens / 7,5); // (Pulsfrekvens x 60 min) / 7.5Q = strømningshastighet i L / time lcd.clear (); lcd.setCursor (0,0); lcd.print ("Rate:"); lcd.print (l_minute); lcd.print ("L / M"); l_minute = l_minute / 60; lcd.setCursor (0,1); vol = vol + l_minute; lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); flytfrekvens = 0; // Reset Counter Serial.print (l_minute, DEC); // Skriv ut liter / time Serial.println ("L / Sec"); }
Den andre funksjonen fungerer når det ikke kommer utgang fra vannstrømningssensoren innen det angitte tidsrommet.
annet { lcd.clear (); lcd.setCursor (0,0); lcd.print ("Rate:"); lcd.print (flytfrekvens); lcd.print ("L / M"); lcd.setCursor (0,1); lcd.print ("Vol:"); lcd.print (vol); lcd.print ("L"); }
Arduino vannstrømssensor fungerer
I prosjektet vårt koblet vi vannstrømssensoren til et rør. Hvis utgangsventilen til røret er lukket, er utgangen fra vannstrømssensoren null (Ingen pulser). Det vil ikke bli noe avbruddssignal sett på pinnen 2 på Arduino, og tellingen av strømningsfrekvensen vil være null. I denne tilstanden fungerer koden som er skrevet i den andre sløyfen.
Hvis utløpsventilen til røret åpnes. Vannet strømmer gjennom sensoren, som igjen roterer hjulet inne i sensoren. I denne tilstanden kan vi observere pulser som genereres fra sensoren. Disse pulser vil fungere som et avbruddssignal til Arduino UNO. For hvert avbruddssignal (stigende kant) økes antallet av variabel flytfrekvens med ett. Gjeldende tid og cloopTIme-variabel sørger for at verdien av strømningsfrekvensen for hvert sekund tas for beregning av strømningshastighet og volum. Etter at beregningen er fullført, settes variabel flytfrekvens til null og hele prosedyren startes fra begynnelsen.
Komplett arbeid kan også bli funnet i videoen som er lenket nederst på denne siden. Håper du likte opplæringen og likte noe nyttig, hvis du har noen problemer, kan du legge dem i kommentarseksjonen eller bruke forumene våre for andre tekniske spørsmål.