Simpelt digitalt vandflowmålerkredsløb ved hjælp af Arduino

Prøv Vores Instrument Til At Fjerne Problemer





I dette indlæg skal vi konstruere en digital vandflowmåler ved hjælp af Arduino og 16 x 2 LCD-skærm. Vi kigger på YF-S201-vandstrømssensoren, dens konstruktion og arbejde, og hvordan man bruger interface til Arduino for at udtrække nogle nyttige aflæsninger.

Det foreslåede projekt kan måle hastigheden af ​​vandgennemstrømningen i liter / minut og den samlede vandgennemstrømning i liter.



Lad os kigge på YF-S201-vandstrømssensoren.

Illustration af YF-S201:

YF-S201 er en Hall-effekt baseret vandføler. Den har tre terminaler 5V (nominel arbejdsspænding), GND og output. + 5V er rødfarvet ledning, den sorte er GND og den gule udgang.



Sensoren afgiver frekvens, der er direkte proportional med vandgennemstrømningen. YF-S201-sensoren kan måle fra 1 liter / minut til 30 liter / minut. Vandtrykket skal være mindre end eller lig med 1,75 MPa.

Vandet kan injiceres fra den ene ende, og vand strømmer gennem den anden ende.

Sensoren kan placeres efter tankens hovedport.

Placeringen af ​​sensoren kan være hvor som helst efter brugerens behov, men der skal udvises forsigtighed for at undgå lækage af vand.

Sensoren har en magnet og Hall Effect-sensor hvis vi kigger på siderne af vandstrømssensoren, kan vi se en plastturbine i vandstrømmens vej.

En rund formet magnet er indlejret i midten af ​​turbinen, og Hall Effect-sensoren er forseglet og beskyttet mod fugt og placeret over magneten. Hall Effect-sensoren producerer en puls til hver omdrejning i turbinen.

Vandstrømningsbølgeform på seriel plotter

Vi kan se impulser genereret af vandstrømssensor på seriel plotter af arduino IDE, vist nedenfor (Brug af Arduino enkeltkanalsoscilloskop).

Vi har blæst luft gennem sensoren til roter turbinen som en test, og den genererede bølgeform er vist ovenfor. Den tættere bølgeform på venstre side repræsenterer højere frekvens og hurtigere rotation af turbinen, jo mindre tæt bølgeform på højre side betyder omvendt.

En jævn vandstrøm giver konstant frekvensudgang.

Vi skal konvertere frekvensen ind i liter / minut skala. For at gøre dette har producenten givet en formel:

Vandgennemstrømningshastighed (liter / min) = frekvens / 7,5

Så vi er nødt til at måle den genererede frekvens og anvende ovenstående formel i programkoden.

Tekniske specifikationer for YF-S201:

· Nøjagtighed: +/- 10%, hvis du har brug for bedre præcision, skal vi kalibrere.

· Arbejdstemperatur: -25 til + 80 grader Celsius.

· Arbejdsfugtighed: 35% til 80% RF.

· Driftscyklus: 50% +/- 10%.

· Maksimalt vandtryk: 1,75 MPa.

· Impulser pr. Liter: 450.

· Maksimal strømforbrug: 15 mA ved 5V

Det konkluderer YF-S201-vandstrømssensoren.

Lad os nu gå til skematisk.

Skematisk diagram:

Vandstrømssensorens udgangsstift er forbundet til A0 i Arduino. Brug 10K potentiometer til justering af skærmkontrast. Træk Arduino og LCD-skærm som i ovenstående diagram.

Programkode:

//-----Program Developed by R.Girish-----//
#include
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int X
int Y
float Time = 0
float frequency = 0
float waterFlow = 0
float total = 0
float LS = 0
const int input = A0
const int test = 9
void setup()
{
Serial.begin(9600)
lcd.begin(16, 2)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Water Flow Meter')
lcd.setCursor(0,1)
lcd.print('****************')
delay(2000)
pinMode(input,INPUT)
pinMode(test, OUTPUT)
analogWrite(test,100)
}
void loop()
{
X = pulseIn(input, HIGH)
Y = pulseIn(input, LOW)
Time = X + Y
frequency = 1000000/Time
waterFlow = frequency/7.5
LS = waterFlow/60
if(frequency >= 0)
{
if(isinf(frequency))
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: 0.00')
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
else
{
total = total + LS
Serial.println(frequency)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('L/Min: ')
lcd.print(waterFlow)
lcd.setCursor(0,1)
lcd.print('Total: ')
lcd.print(total)
lcd.print(' L')
}
}
delay(1000)
}
//-----Program Developed by R.Girish-----//

Forfatterens prototype:

“L / Min” indikerer den aktuelle vandgennemstrømningshastighed, og “Total” indikerer det samlede vand, der er strømt siden kredsløbet blev tændt.

Du kan også strømme alle væsker, hvis viskositetsværdi er tæt på vand.

Hvis du har spørgsmål vedrørende denne digitale vandflowmåler ved hjælp af Arduino, er du velkommen til at udtrykke i kommentarsektionen, du kan muligvis få et hurtigt svar.




Forrige: Joystick-styret 2,4 GHz RC-bil ved hjælp af Arduino Næste: Lav denne Buck Converter ved hjælp af Arduino