Egyszerű digitális vízáramlásmérő áramkör Arduino segítségével

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a bejegyzésben digitális vízáramlásmérőt fogunk építeni Arduino és 16 x 2 LCD kijelző segítségével. Megnézzük az YF-S201 vízáramlás-érzékelőt, annak felépítését és működését, valamint az Arduino-val való összekapcsolás módját, hogy hasznos olvasmányokat nyerjünk ki.

A javasolt projekt mérheti a víz áramlási sebességét liter / percben és a teljes víz áramlását literben.



Vessünk egy pillantást az YF-S201 vízáramlás-érzékelőre.

Az YF-S201 illusztrációja:

Az YF-S201 a Hall Effect alapú víz érzékelő. Három kivezetése van 5V (névleges üzemi feszültség), GND és kimenet. A + 5V vörös színű vezeték, a fekete GND és sárga a kimenet.



Az érzékelő a vízárammal közvetlenül arányos frekvenciát ad ki. Az YF-S201 érzékelő 1 liter / perc és 30 liter / perc közötti értéket képes mérni. A víznyomásnak kisebbnek vagy egyenlőnek kell lennie, mint 1,75 MPa.

A víz az egyik végéből befecskendezhető, a másik végén pedig a víz áramlik.

Az érzékelő elhelyezhető a tartály fő kapu-szelepe után, ha a víz áramlását vízvezeték-hálózaton szeretné megmérni, vagy közvetlenül a vízcsap előtt helyezheti el az egyetlen csap vízmennyiségének mérésére.

Az érzékelő bárhol elhelyezhető a felhasználó igényeinek megfelelően, de ügyelni kell a víz szivárgásának elkerülésére.

Az érzékelő a mágnes és Hall Effect érzékelő ha megnézzük a vízáramlás-érzékelő oldalait, akkor tanúi lehetünk egy műanyag turbinának a vízáramlás útjában.

A turbina közepén egy kerek alakú mágnes van beágyazva, a Hall Effect érzékelő pedig lezárva, nedvességtől védve van, és a mágnes fölé kerül. A Hall Effect érzékelő impulzust generál a turbina minden fordulatához.

Víz áramlási hullám a soros plotteren

Láthatjuk az impulzusokat, amelyeket a vízáramlás-érzékelő generál az arduino IDE soros plotterén, az alábbiak szerint (Arduino egycsatornás oszcilloszkóp használata).

A szenzoron keresztül levegőt fújtunk forgassa a turbinát mint teszt, és a létrehozott hullámforma fent látható. A bal oldali sűrűbb hullámforma nagyobb frekvenciát és gyorsabb forgást jelent a turbinánál, a kevésbé sűrű hullámforma a jobb oldalon viszont fordítva jelzi.

Az állandó vízáram állandó frekvenciakimenetet eredményez.

Nekünk kell konvertálja a frekvenciát liter / perc skálára. Ehhez a gyártó képletet adott:

A víz áramlási sebessége (liter / perc) = frekvencia / 7,5

Tehát meg kell mérnünk a generált frekvenciát, és a fenti képletet kell alkalmaznunk a programkódban.

Az YF-S201 műszaki specifikációi:

· Pontosság: +/- 10%, ha nagyobb pontosságra van szüksége, kalibrálnunk kell.

· Működési hőmérséklet: -25 és + 80 Celsius fok között.

· Munka páratartalom: 35% - 80% relatív páratartalom.

· Kimeneti munkaciklus: 50% +/- 10%.

· Maximális víznyomás: 1,75 MPa.

· Impulzus per liter: 450.

· Maximális áramfelvétel: 15 mA, 5 V mellett

Ezzel lezárult az YF-S201 vízáramlás-érzékelő.

Most térjünk át a sematikusra.

Sematikus ábrája:

A vízáramlás-érzékelő kimeneti csapja az Arduino A0-jához van csatlakoztatva. Használja a 10K potenciométer a kijelző kontrasztjának beállításához. Huzalozzuk az Arduino és LCD kijelzö a fenti ábra szerint.

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

A szerző prototípusa:

Az „L / Min” jelzi az aktuális vízáramlási sebességet, az „Összesen” pedig az áramlott teljes vízmennyiséget az áramkör bekapcsolása óta.

Olyan folyadékokat is áramolhat, amelyek viszkozitási értéke közel van a vízhez.

Ha kérdése van az Arduino-t használó digitális vízmennyiségmérővel kapcsolatban, nyugodtan fejtse ki a megjegyzés részben, akkor gyors választ kaphat.




Előző: Joystick vezérelt 2,4 GHz-es RC autó Arduino használatával Következő: Készítse el ezt a Buck Converter alkalmazást az Arduino használatával