Enkel digital vattenflödesmätarkrets med Arduino

Prova Vårt Instrument För Att Eliminera Problem





I det här inlägget ska vi konstruera en digital vattenflödesmätare med Arduino och 16 x 2 LCD-skärm. Vi kommer att ta en titt på YF-S201 vattenflödesgivare, dess konstruktion och arbete och hur man gränssnitt med Arduino för att extrahera några användbara avläsningar.

Det föreslagna projektet kan mäta vattenflödet i liter / minut och det totala vattenflödet i liter.



Låt oss ta en titt på YF-S201 vattenflödessensor.

Illustration av YF-S201:

YF-S201 är en Halleffekt baserad vattensensor. Den har tre terminaler 5V (nominell arbetsspänning), GND och utgång. + 5V är röd färgad tråd, den svarta är GND och gul en utgång.



Sensorn ger ut frekvensen direkt proportionell mot vattenflödet. YF-S201-sensorn kan mäta från 1 liter / minut till 30 liter / minut. Vattentrycket bör vara mindre än eller lika med 1,75 MPa.

Vattnet kan injiceras från ena änden och vatten rinner genom den andra änden.

Sensorn kan placeras efter tankens huvudgrindventil om du vill mäta vattenflödet i ett nätverk av vattenledningar eller om du kan placera strax före en vattenkran för att mäta vattenflödet för en kran.

Sensorn kan placeras var som helst beroende på användarens behov, men försiktighet måste iakttas för att undvika läckage av vatten.

Sensorn har en magnet och Hall-effektsensor om vi tittar på sidorna av vattenflödesgivaren kan vi bevittna en plastturbin i vägen för vattenflödet.

En rund formad magnet är inbäddad i mitten av turbinen och Hall Effect-sensorn förseglas och skyddas mot fukt och placeras ovanför magneten. Hall Effect-sensorn producerar en puls för varje varv i turbinen.

Vattenflödesvågform på seriell plotter

Vi kan se pulserna som genereras av vattenflödesgivare på seriell plotter av arduino IDE, som visas nedan (med Arduino enkanalsoscilloskop).

Vi har blåst luft genom sensorn till rotera turbinen som ett test och den genererade vågformen visas ovan. Den tätare vågformen på vänster sida representerar högre frekvens och snabbare rotation av turbinen, desto mindre tät vågform på höger sida betyder vice versa.

Ett jämnt vattenflöde ger konstant frekvensutgång.

Vi måste konvertera frekvensen i liter / minut skala. För att göra detta har tillverkaren gett en formel:

Vattenflöde (liter / min) = frekvens / 7,5

Så vi måste mäta den genererade frekvensen och tillämpa ovanstående formel i programkoden.

Tekniska specifikationer för YF-S201:

· Noggrannhet: +/- 10%, om du behöver bättre precision måste vi kalibrera.

· Arbetstemperatur: -25 till + 80 grader Celsius.

· Arbetsfuktighet: 35% till 80% RH.

· Driftcykel för produktion: 50% +/- 10%.

· Maximalt vattentryck: 1,75 MPa.

· Pulser per liter: 450.

· Maximal strömförbrukning: 15 mA vid 5V

Det avslutar vattenflödessensorn YF-S201.

Låt oss nu gå till schemat.

Schematisk bild:

Vattenflödesgivarens utgångsstift är ansluten till A0 i Arduino. Använd 10K potentiometer för justering av skärmkontrast. Anslut Arduino och LCD skärm enligt ovanstående diagram.

Programkod:

//-----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-----//

Författarens prototyp:

'L / Min' indikerar den aktuella vattenflödet och 'Total' anger det totala flödet av vatten sedan kretsen slogs PÅ.

Du kan också flöda alla vätskor vars viskositetsvärde är nära vatten.

Om du har några frågor angående denna digitala vattenflödesmätare som använder Arduino, är du välkommen att uttrycka i kommentarsektionen, du kan få ett snabbt svar.




Tidigare: Joystickstyrd 2,4 GHz RC-bil med Arduino Nästa: Gör denna Buck Converter med Arduino