- Součásti
- Ultrazvukový senzorový modul
- Práce s automatickým regulátorem hladiny vody
- Schéma zapojení a vysvětlení
- Programování
V tomto automatickém projektu ukazatele hladiny vody a projektu regulátoru založeného na Arduinu budeme měřit hladinu vody pomocí ultrazvukových senzorů. Základní princip ultrazvukového měření vzdálenosti je založen na ECHO. Když jsou zvukové vlny přenášeny v prostředí, vrátí se po nárazu na jakoukoli překážku zpět do původu jako ECHO. Musíme tedy pouze spočítat jeho cestovní čas obou zvuků znamená odchozí čas a návratový čas do původu po nárazu na jakoukoli překážku. A po nějakém výpočtu můžeme získat výsledek, kterým je vzdálenost. Tento koncept se používá v našem projektu regulátoru vody, kde se čerpadlo vodního motoru automaticky zapne, když hladina vody v nádrži klesne. Můžete také zkontrolovat tento jednoduchý obvod indikátoru hladiny vody pro jednodušší verzi tohoto projektu.
Součásti
- Arduino Uno
- Ultrazvukový senzorový modul
- 16x2 LCD
- Relé 6 voltů
- ULN2003
- 7806
- PVT
- Měděný drát
- 9voltová baterie nebo 12voltový adaptér
- Připojovací vodiče
Ultrazvukový senzorový modul
Ultrazvukový senzor HC-SR04 se používá k měření vzdálenosti v rozsahu 2 cm - 400 cm s přesností 3 mm. Modul senzoru se skládá z ultrazvukového vysílače, přijímače a řídicího obvodu.
Modul ultrazvukového senzoru pracuje na přirozeném jevu ECHO zvuku. K spuštění modulu je vyslán pulz po dobu přibližně 10us. Poté modul automaticky odešle 8 cyklů ultrazvukového signálu 40 KHz a zkontroluje jeho ozvěnu. Signál po nárazu na překážku se vrací zpět a je zachycen přijímačem. Vzdálenost překážky od snímače se tedy jednoduše vypočítá podle vzorce uvedeného jako
Vzdálenost = (čas x rychlost) / 2.
Zde jsme rozdělili součin rychlosti a času o 2, protože čas je celková doba potřebná k dosažení překážky a návratu zpět. Čas potřebný k dosažení překážky je tedy jen polovina celkového času.
Práce s automatickým regulátorem hladiny vody
Práce na tomto projektu je velmi jednoduchá, použili jsme modul ultrazvukového senzoru, který vysílá zvukové vlny ve vodní nádrži a detekuje odraz zvukových vln, což je ECHO. Nejprve musíme spustit modul ultrazvukového senzoru k přenosu signálu pomocí Arduina a poté počkat na příjem ECHO. Arduino čte čas mezi spuštěním a přijetím ECHO. Víme, že rychlost zvuku je kolem 340 m / s. takže můžeme vypočítat vzdálenost pomocí daného vzorce:
Vzdálenost = (doba jízdy / 2) * rychlost zvuku
Rychlost zvuku je přibližně 340 metrů za sekundu.
Použitím této metody získáme vzdálenost od senzoru k vodní hladině. Poté musíme vypočítat hladinu vody.
Nyní musíme vypočítat celkovou délku vodní nádrže. Jak známe délku nádrže na vodu, můžeme vypočítat hladinu vody odečtením výsledné vzdálenosti od ultrazvuku od celkové délky nádrže. A dostaneme vzdálenost hladiny vody. Nyní můžeme tuto hladinu převést na procenta vody a zobrazit ji na LCD. Fungování celého projektu ukazatele hladiny vody je uvedeno v níže uvedeném blokovém schématu.
Schéma zapojení a vysvětlení
Jak je znázorněno v níže uvedeném obvodu regulátoru hladiny vody, piny „spouštěcího“ a „echo“ modulu ultrazvukového snímače jsou přímo připojeny k pinům 10 a 11 arduino. Displej 16x2 LCD je připojen k arduino ve 4bitovém režimu. Ovládací kolíky RS, RW a En jsou přímo připojeny k arduino kolíku 7, GND a 6. A datový kolík D4-D7 je připojen k 5, 4, 3 a 2 arduina a bzučák je připojen k kolíku 12. 6 voltové relé je také připojeno na pinu 8 arduino přes ULN2003 pro zapnutí nebo vypnutí čerpadla vodního motoru. Regulátor napětí 7805 se také používá k dodávání 5 voltů do relé a do zbývajícího obvodu.
V tomto okruhu je pro demonstraci umístěn modul ultrazvukového senzoru v horní části nádoby (nádrž na vodu). Tento senzorový modul načte vzdálenost mezi senzorovým modulem a vodní hladinou a na LCD obrazovce zobrazí vzdálenost „Water Space in Tank is:“. To znamená, že zde místo hladiny vody ukazujeme prázdné místo vzdálenosti nebo objemu vody. Díky této funkčnosti můžeme tento systém používat v jakékoli nádrži na vodu. Když hladina prázdné vody dosáhne na vzdálenost asi 30 cm, Arduino zapne vodní čerpadlo budícím relé. Nyní LCD zobrazí „LOW Water Level“ „Motor ON ON“ a LED stavu relé začne svítit
Nyní, když prázdný prostor dosáhne ve vzdálenosti přibližně 12 cm arduino, se vypne, relé a LCD zobrazí „Tank je plný“ „Motor vypnut“. Bzučák také nějakou dobu pípne a LED stav relé zhasne.
Programování
Abychom naprogramovali Arduino pro regulátor hladiny vody, nejprve definujeme všechny piny, které použijeme v projektu pro propojení externích zařízení, jako je relé, LCD, bzučák atd.
#define trigger 10 #define echo 11 #define motor 8 #define bzučák 12
Poté inicializujeme všechna zařízení použitá v projektu.
lcd.begin (16,2); pinMode (trigger, OUTPUT); pinMode (echo, INPUT); pinMode (motor, VÝSTUP); pinMode (bzučák, VÝSTUP); lcd.print ("Hladina vody"); lcd.setCursor (0,1); lcd.print ("Indikátor"); zpoždění (2000);
Nyní inicializujte modul ultrazvukového senzoru a přečtěte si čas odesílání a přijímání ultrazvukových vln nebo zvuku pomocí pulseIn (pin). Poté proveďte výpočty a pomocí příslušných funkcí zobrazte výsledek na 16x2 LCD.
digitalWrite (trigger, HIGH); delayMicroseconds (10); digitalWrite (trigger, LOW); delayMicroseconds (2); čas = pulseIn (echo, HIGH); vzdálenost = čas * 340/20000; lcd.clear (); lcd.print ("Water Space In"); lcd.setCursor (0,1); lcd.print ("Tank je:"); lcd.print (vzdálenost); lcd.print ("Cm");
Poté zkontrolujeme podmínky, zda je nádrž na vodu plná nebo zda je hladina vody NÍZKÁ, a podle toho podnikneme příslušné kroky.
if (vzdálenost <12 && temp == 0) {digitalWrite (motor, LOW); digitalWrite (bzučák, VYSOKÝ); lcd.clear (); lcd.print („Nádrž na vodu plná“); lcd.setCursor (0,1); lcd.print ("Motor je vypnutý"); zpoždění (2000); digitalWrite (bzučák, NÍZKÝ); zpoždění (3000); teplota = 1; } else if (vzdálenost <12 && temp == 1) {digitalWrite (motor, LOW); lcd.clear (); lcd.print („Nádrž na vodu plná“); lcd.setCursor (0,1); lcd.print ("Motor je vypnutý"); zpoždění (5 000); }