Paprasta skaitmeninė vandens srauto matuoklio grandinė naudojant „Arduino“

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame įraše sukursime skaitmeninį vandens srauto matuoklį naudodami „Arduino“ ir 16 x 2 LCD ekraną. Mes pažvelgsime į vandens srauto jutiklį YF-S201, jo konstrukciją ir veikimą bei tai, kaip sąveikauti su „Arduino“, kad gautume naudingų rodmenų.

Siūlomu projektu galima išmatuoti vandens srauto greitį litrais / minutę ir bendrą vandens srautą litrais.



Pažvelkime į vandens srauto jutiklį YF-S201.

YF-S201 iliustracija:

YF-S201 yra a Salės efektas pagrįstas vandens jutiklis. Jame yra trys gnybtai 5V (vardinė darbinė įtampa), BND ir išėjimas. + 5 V yra raudonos spalvos viela, juoda - GND, o geltona - išvestis.



Jutiklis suteikia dažnį, tiesiogiai proporcingą vandens srautui. „YF-S201“ jutiklis gali matuoti nuo 1 l / min iki 30 l / min. Vandens slėgis turėtų būti mažesnis arba lygus 1,75 MPa.

Vanduo gali būti įpurškiamas iš vieno galo, o vanduo teka per kitą galą.

Jutiklis gali būti dedamas po pagrindiniu rezervuaro vožtuvu, jei norite išmatuoti vandens srautą vandens vamzdžių tinkle arba galite pastatyti prieš pat vandens čiaupą, kad pamatuotumėte vieno čiaupo vandens srautą.

Jutiklis gali būti bet kur, atsižvelgiant į vartotojo poreikius, tačiau reikia stengtis išvengti vandens nutekėjimo.

Jutiklis turi a magnetas ir „Hall“ efekto jutiklis pažvelgę ​​į vandens srauto jutiklio šonus, galime pamatyti plastiko turbiną vandens tekėjimo kelyje.

Turbinos centre yra įdėtas apvalios formos magnetas, o „Hall Effect“ jutiklis yra sandariai uždarytas ir apsaugotas nuo drėgmės ir dedamas virš magneto. „Hall Effect“ jutiklis sukuria impulsą kiekvienam turbinos apsisukimui.

Vandens srauto bangos forma nuosekliame braižytuve

Mes galime pamatyti vandens srauto jutiklio generuojamus impulsus serduiniame „Arduino IDE“ braižytuve, parodytame žemiau (naudojant „Arduino Single Channel Oscilloscope“).

Mes prapūtėme orą per jutiklį pasukite turbiną kaip bandymas ir sukurta bangos forma parodyta aukščiau. Tankesnė bangos forma kairėje pusėje reiškia didesnį dažnį ir greitesnį turbinos sukimąsi, o mažiau tanki bangos forma dešinėje pusėje reiškia atvirkščiai.

Nuolatinis vandens srautas suteikia pastovų dažnio išėjimą.

Mes privalome konvertuoti dažnį į litrų / minučių skalę. Norėdami tai padaryti, gamintojas pateikė formulę:

Vandens srautas (l / min) = dažnis / 7,5

Taigi, mes turime išmatuoti sugeneruotą dažnį ir pritaikyti aukščiau pateiktą formulę programos kode.

Techninės YF-S201 specifikacijos:

· Tikslumas: +/- 10%, jei jums reikia tikslumo, turime kalibruoti.

· Darbinė temperatūra: nuo -25 iki + 80 laipsnių Celsijaus.

· Darbinė drėgmė: nuo 35% iki 80% RH.

· Išvesties darbo ciklas: 50% +/- 10%.

· Didžiausias vandens slėgis: 1,75 MPa.

· Impulsai litre: 450.

· Didžiausias srovės paėmimas: 15 mA esant 5 V įtampai

Tuo baigtas vandens srauto jutiklis YF-S201.

Dabar pereikime prie schemos.

Schema:

Vandens srauto jutiklio išvesties kaištis yra prijungtas prie „Arduino“ A0. Naudoti 10K potenciometras ekrano kontrastui reguliuoti. Viela „Arduino“ ir LCD ekranas kaip nurodyta pirmiau pateiktoje diagramoje.

Programos kodas:

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

Autoriaus prototipas:

„L / Min“ nurodo esamą vandens srauto greitį, o „Total“ - bendrą vandens srautą nuo kontūro įjungimo.

Taip pat galite tekėti skysčius, kurių klampos vertė yra arti vandens.

Jei turite klausimų dėl šio skaitmeninio vandens srauto matuoklio, naudojant „Arduino“, nedvejodami išsakykite komentarų skyriuje, galite gauti greitą atsakymą.




Pora: „Joystick“ valdomas 2,4 GHz RC automobilis, naudojant „Arduino“ Kitas: Padarykite šį „Buck Converter“ naudodami „Arduino“