Jednoduchý digitální obvod měřiče průtoku vody pomocí Arduina

Vyzkoušejte Náš Nástroj Pro Odstranění Problémů





V tomto příspěvku se chystáme postavit digitální měřič průtoku vody pomocí Arduina a 16 x 2 LCD displeje. Podíváme se na snímač průtoku vody YF-S201, jeho konstrukci a fungování a jak komunikovat s Arduino, abychom získali několik užitečných údajů.

Navrhovaný projekt může měřit rychlost průtoku vody v litrech za minutu a celkový průtok vody v litrech.



Podívejme se na snímač průtoku vody YF-S201.

Ilustrace modelu YF-S201:

YF-S201 je Hall efekt založený vodní senzor. Má tři svorky 5V (jmenovité pracovní napětí), GND a výstup. + 5 V je červeně zbarvený vodič, černý je GND a žlutý je na výstupu.



Čidlo vydává frekvenci přímo úměrnou průtoku vody. Senzor YF-S201 může měřit od 1 litru za minutu do 30 litrů za minutu. Tlak vody by měl být menší nebo roven 1,75 MPa.

Voda může být vstřikována z jednoho konce a voda protéká druhým koncem.

Senzor může být umístěn za hlavním uzavíracím ventilem nádrže, pokud chcete měřit průtok vody v síti vodovodních potrubí nebo můžete umístit těsně před vodovodní kohoutek a měřit průtok vody jednoduchým kohoutem.

Umístění senzoru může být kdekoli podle potřeby uživatele, je však třeba dbát na to, aby nedošlo k úniku vody.

Senzor má a magnet a snímač Hall Effect když se podíváme po stranách snímače průtoku vody, můžeme být svědky plastové turbíny v cestě proudění vody.

Ve středu turbíny je vložen magnet kulatého tvaru a snímač Hall Effect je utěsněn a chráněn před vlhkostí a umístěn nad magnetem. Senzor Hall Effect vytváří pulz pro každou otáčku turbíny.

Průběh průtoku vody na sériovém plotru

Můžeme vidět pulsy generované snímačem průtoku vody na sériovém plotru arduino IDE, který je zobrazen níže (pomocí jednokanálového osciloskopu Arduino).

Sfoukli jsme vzduch přes senzor do otáčet turbínou jako test a generovaný průběh je zobrazen výše. Hustší křivka na levé straně představuje vyšší frekvenci a rychlejší rotaci turbíny, méně hustá křivka na pravé straně znamená naopak.

Konzistentní průtok vody poskytuje konzistentní frekvenční výstup.

Musíme převést frekvenci do stupnice litr / minutu. K tomu výrobce uvedl vzorec:

Průtok vody (litr / min) = frekvence / 7,5

Musíme tedy změřit generovanou frekvenci a použít výše uvedený vzorec v kódu programu.

Technické specifikace YF-S201:

· Přesnost: +/- 10%, pokud potřebujete lepší přesnost, musíme provést kalibraci.

· Pracovní teplota: -25 až + 80 stupňů Celsia.

· Pracovní vlhkost: 35% až 80% RH.

· Pracovní cyklus výstupu: 50% +/- 10%.

· Maximální tlak vody: 1,75 MPa.

· Impulzy na litr: 450.

· Maximální odběr proudu: 15 mA při 5V

Tím je čidlo průtoku vody YF-S201 zakončeno.

Nyní pojďme ke schématu.

Schematický diagram:

Výstupní kolík snímače průtoku vody je připojen k A0 Arduina. Použijte 10K potenciometr pro nastavení kontrastu displeje. Připojte Arduino a LCD displej podle výše 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-----//

Autorův prototyp:

„L / Min“ označuje aktuální průtok vody a „Celkem“ označuje celkový průtok vody od zapnutí okruhu.

Můžete také protékat jakékoli kapaliny, jejichž hodnota viskozity se blíží vodě.

Pokud máte jakékoli dotazy týkající se tohoto digitálního průtokoměru vody pomocí Arduina, neváhejte vyjádřit v sekci komentáře, můžete obdržet rychlou odpověď.




Předchozí: Joystickem ovládané 2,4 GHz RC auto pomocí Arduina Další: Vytvořte tento převaděč Buck pomocí Arduina