Jednoduchý digitálny obvod merača prietoku vody pomocou Arduina

Vyskúšajte Náš Nástroj Na Odstránenie Problémov





V tomto príspevku zostrojíme digitálny prietokomer vody využívajúci Arduino a 16 x 2 LCD displej. Pozrime sa na snímač prietoku vody YF-S201, jeho konštrukciu a prácu a na to, ako komunikovať s Arduinom, aby sme získali niekoľko užitočných údajov.

Navrhovaný projekt môže merať rýchlosť prietoku vody v litroch za minútu a celkový prietok vody v litroch.



Pozrime sa na snímač prietoku vody YF-S201.

Ilustrácia modelu YF-S201:

YF-S201 je a Založené na Hallovom efekte snímač vody. Má tri svorky 5V (menovité pracovné napätie), GND a výstup. + 5 V je červeno zafarbený vodič, čierny je GND a žltý na výstupe.



Snímač vydáva frekvenciu priamo úmernú prietoku vody. Senzor YF-S201 môže merať od 1 litra / minútu do 30 litrov / minútu. Tlak vody by mal byť menší alebo rovný 1,75 MPa.

Voda môže byť vstrekovaná z jedného konca a voda preteká druhým koncom.

Senzor môže byť umiestnený za hlavným uzáverom nádrže, ak chcete merať prietok vody v sieti vodovodných potrubí alebo môžete umiestniť tesne pred vodovodný kohútik a zmerať prietok vody jedným kohútikom.

Snímač je možné umiestniť kdekoľvek podľa potreby používateľa, je však potrebné dbať na to, aby nedošlo k úniku vody.

Senzor má a magnet a snímač Hall Effect ak sa pozrieme na bočné strany snímača prietoku vody, môžeme byť svedkami plastovej turbíny v ceste prúdenia vody.

V strede turbíny je zabudovaný magnet kruhového tvaru a snímač Hall Effect je utesnený a chránený pred vlhkosťou a umiestnený nad magnetom. Snímač Hall Effect vytvára impulz pre každú otáčku turbíny.

Priebeh vodného toku na sériovom plotri

Môžeme vidieť impulzy generované snímačom prietoku vody na sériovom plotri arduino IDE, ktorý je zobrazený nižšie (pomocou jednokanálového osciloskopu Arduino).

Cez senzor sme vháňali vzduch do otočiť turbínu ako test a vygenerovaný tvar vlny je uvedený vyššie. Hustší priebeh na ľavej strane predstavuje vyššiu frekvenciu a rýchlejšiu rotáciu turbíny, menej hustý priebeh na pravej strane znamená naopak.

Konzistentný prietok vody poskytuje konštantný výstup frekvencie.

Musíme previesť frekvenciu do stupnice liter / minútu. Za týmto účelom výrobca uviedol vzorec:

Prietok vody (liter / min) = frekvencia / 7,5

Potrebujeme teda zmerať vygenerovanú frekvenciu a použiť vyššie uvedený vzorec v programovom kóde.

Technické špecifikácie YF-S201:

· Presnosť: +/- 10%, ak potrebujete lepšiu presnosť, musíme vykonať kalibráciu.

· Pracovná teplota: -25 až + 80 stupňov Celzia.

· Pracovná vlhkosť: 35% až 80% RV.

· Výstupný pracovný cyklus: 50% +/- 10%.

· Maximálny tlak vody: 1,75 MPa.

· Impulzy na liter: 450.

· Maximálny odber prúdu: 15 mA pri 5V

To uzatvára snímač prietoku vody YF-S201.

Prejdime teraz k schéme.

Schematický diagram:

Výstupný kolík snímača prietoku vody je pripojený k A0 Arduina. Použi 10K potenciometer na nastavenie kontrastu displeja. Pripojte Arduino a displej LCD podľa vyššie uvedeného diagramu.

Programový kód:

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

Prototyp autora:

„L / Min“ označuje aktuálny prietok vody a „Total“ označuje celkový prietok vody od zapnutia okruhu.

Môžete tiecť tiež akékoľvek kvapaliny, ktorých viskozita sa blíži vode.

Ak máte akékoľvek otázky týkajúce sa tohto digitálneho vodomeru pomocou Arduina, neváhajte a vyjadrite sa v sekcii komentárov. Môžete dostať rýchlu odpoveď.




Dvojica: RC auto riadené joystickom 2,4 GHz pomocou Arduina Ďalej: Vytvorte tento prevodník Buck pomocou Arduina