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