Jednostavni digitalni krug mjerača protoka vode koji koristi Arduino

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo postu izraditi digitalni mjerač protoka vode pomoću Arduina i LCD zaslona 16 x 2. Pogledat ćemo YF-S201 osjetnik protoka vode, njegovu konstrukciju i rad te kako povezati Arduino kako bi se izdvojila neka korisna očitanja.

Predloženi projekt može mjeriti brzinu protoka vode u litri / minuti i ukupni protok vode u litrama.



Pogledajmo YF-S201 senzor protoka vode.

Ilustracija YF-S201:

YF-S201 je Bazirano na Hallovom efektu senzor za vodu. Ima tri stezaljke 5V (nominalni radni napon), GND i izlaz. + 5V je žica crvene boje, crna je GND, a žuta je na izlazu.



Senzor daje frekvenciju izravno proporcionalnu protoku vode. YF-S201 senzor može mjeriti od 1 litre / minutu do 30 litre / minutu. Pritisak vode trebao bi biti manji ili jednak 1,75 MPa.

Voda se može ubrizgati s jednog kraja, a voda teče kroz drugi kraj.

Senzor se može postaviti nakon glavnog zapornog ventila spremnika ako želite izmjeriti protok vode u mreži vodovodnih cijevi ili možete postaviti neposredno ispred slavine za mjerenje protoka vode jedne slavine.

Postavljanje senzora može biti bilo gdje prema potrebama korisnika, ali mora se voditi računa da se izbjegne curenje vode.

Senzor ima magnet i Hall Effect senzor ako pogledamo bočne strane senzora protoka vode, možemo biti svjedoci plastične turbine na putu protoka vode.

Magnet okruglog oblika ugrađen je u središte turbine, a Hall Effect senzor je zapečaćen i zaštićen od vlage te postavljen iznad magneta. Hall Effect senzor proizvodi impuls za svaki okretanje turbine.

Valni oblik protoka vode na serijskom ploteru

Impulse generirane senzorom protoka vode možemo vidjeti na serijskom crtaču arduino IDE-a, prikazanom dolje (pomoću Arduino jednokanalnog osciloskopa).

Puhali smo zrak kroz senzor do okretati turbinu kao test i generirani valni oblik prikazan je gore. Gustiji valni oblik na lijevoj strani predstavlja veću frekvenciju i brže okretanje turbine, a manje gusti valni oblik na desnoj strani označava obrnuto.

Konzistentan protok vode daje konstantni izlaz frekvencije.

Mi moramo pretvoriti frekvenciju u ljestvicu / minutu. Da bi to učinio, proizvođač je dao formulu:

Brzina protoka vode (litra / min) = frekvencija / 7,5

Dakle, moramo izmjeriti generiranu frekvenciju i primijeniti gornju formulu u programskom kodu.

Tehničke specifikacije YF-S201:

· Točnost: +/- 10%, ako trebate bolju preciznost, moramo kalibrirati.

· Radna temperatura: -25 do + 80 Celzijevih stupnjeva.

· Radna vlažnost: 35% do 80% RH.

· Izlazni radni ciklus: 50% +/- 10%.

· Maksimalni tlak vode: 1,75 MPa.

· Impulsi po litru: 450.

· Maksimalno povlačenje struje: 15 mA pri 5V

To zaključuje YF-S201 osjetnik protoka vode.

Krenimo sada na shemu.

Shematski dijagram:

Izlazni zatik osjetnika protoka vode spojen je na A0 Arduina. Koristiti 10K potenciometar za podešavanje kontrasta zaslona. Ožičite Arduino i LCD zaslon prema gornjem dijagramu.

Kod programa:

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

Autorski prototip:

'L / Min' označava trenutnu brzinu protoka vode, a 'Total' označava ukupnu protok vode od uključivanja kruga.

Također možete teći bilo koju tekućinu čija je vrijednost viskoznosti blizu vode.

Ako imate bilo kakvih pitanja u vezi s ovim digitalnim mjeračem protoka vode koji koristi Arduino, slobodno izrazite u odjeljku za komentare, možda ćete dobiti brzi odgovor.




Prethodno: Džojstikom kontrolirano 2,4 GHz RC automobil koji koristi Arduino Dalje: Napravite ovaj Buck Converter koristeći Arduino