- Čo je to zákal v kvapaline?
- Ako merať zákal pomocou Arduina?
- Súčasti potrebné na výrobu merača zákalu
- Prehľad senzora zákalu
- Kľúčové vlastnosti modulu zákalu
- Prepojovací snímač zákalu s obvodom Arduino
- Programovanie Arduina na meranie zákalu vo vode
Pokiaľ ide o kvapaliny, zákal je dôležitý pojem. Pretože hrá dôležitú úlohu v dynamike tekutín a používa sa aj na meranie kvality vody. Takže v tomto tutoriáli poďme diskutovať o tom, čo je zákal, ako merať zákal kvapaliny pomocou Arduina. Ak chcete tento projekt posunúť ďalej, môžete tiež zvážiť prepojenie pH metra s Arduinom a tiež prečítať hodnotu pH vody, aby ste mohli lepšie posúdiť kvalitu vody. Predtým sme tiež pomocou ESP8266 postavili monitorovacie zariadenie na kvalitu vody založené na IoT. Môžete si to tiež skontrolovať, ak máte záujem. Ako už bolo povedané, môžeme začať
Čo je to zákal v kvapaline?
Zákal je stupeň alebo úroveň zakalenia alebo zakalenia kvapaliny. Stáva sa to kvôli prítomnosti veľkého množstva neviditeľných častíc (voľným okom) podobných bielemu dymu vo vzduchu. Keď svetlo prechádza kvapalinami, svetelné vlny sa rozptýlia kvôli prítomnosti týchto drobných častíc. Zákal kvapaliny je priamo úmerný voľným suspendovaným časticiam, to znamená, že pokiaľ sa zvýši počet častíc, zákal sa tiež zvýši.
Ako merať zákal pomocou Arduina?
Ako som už spomínal, zákal sa deje v dôsledku rozptylu svetelných vĺn. Aby sme mohli zmerať zákal, mali by sme merať rozptyl svetla. Zákal sa zvyčajne meria v nefelometrických jednotkách zákalu (NTU) alebo Jacksonových zákaloch (JTLJ), v závislosti od použitej metódy merania. Tieto dve jednotky sú zhruba rovnaké.
Teraz sa pozrime, ako funguje senzor zákalu, ktorý má dve časti, vysielač a prijímač. Vysielač sa skladá zo zdroja svetla, obvykle z LED a budiaceho obvodu. Na konci prijímača je detektor svetla ako fotodióda alebo LDR. Roztok umiestnime medzi vysielač a prijímač.
Vysielač jednoducho prenáša svetlo, že svetelné vlny prechádzajú cez roztok a prijímač svetlo prijíma. Za normálnych okolností (bez prítomnosti roztoku) prechádzajúce svetlo úplne prijíma na strane prijímača. Ale v prítomnosti zakaleného roztoku je množstvo prepúšťaného svetla veľmi nízke. To je na strane prijímača, dostaneme iba svetlo s nízkou intenzitou a táto intenzita je nepriamo úmerná zákalu. Takže môžeme merať zákal meraním intenzity svetla, ak je intenzita svetla vysoká, roztok je menej zakalený a ak je intenzita svetla veľmi nízka, znamená to, že roztok je zakalenejší.
Súčasti potrebné na výrobu merača zákalu
- Modul zákalu
- Arduino
- 16 * 2 I2C LCD
- Spoločná katódová RGB LED
- Nepál
- Prepojovacie vodiče
Prehľad senzora zákalu
Snímač zákalu použitý v tomto projekte je uvedený nižšie.
Ako vidíte, tento modul senzora zákalu sa dodáva s 3 časťami. Vodotesné vedenie, vodičový obvod a spojovací vodič. Testovacia sonda sa skladá z vysielača aj prijímača.
Vyššie uvedený obrázok ukazuje, že tento typ modulu používa infračervenú diódu ako zdroj svetla a infračervený prijímač ako detektor. Ale princíp fungovania je rovnaký ako predtým. Ovládacia časť (zobrazená nižšie) sa skladá z operačného zosilňovača a niektorých komponentov, ktoré zosilňujú detekovaný svetelný signál.
Aktuálny snímač je možné k tomuto modulu pripojiť pomocou konektora JST XH. Má tri piny, VCC, zem a výstup. Vcc sa pripája na 5V a zem-zem. Výstupom tohto modulu je analógová hodnota, ktorá sa mení podľa intenzity svetla.
Kľúčové vlastnosti modulu zákalu
- Prevádzkové napätie: 5VDC.
- Aktuálny: 30mA (MAX).
- Prevádzková teplota: -30 ° C až 80 ° C.
- Kompatibilné s Arduino, Raspberry Pi, AVR, PIC atď.
Prepojovací snímač zákalu s obvodom Arduino
Kompletná schéma pripojenia senzora zákalu k Arduinu je uvedená nižšie, obvod bol navrhnutý pomocou EasyEDA.
Toto je veľmi jednoduchá schéma zapojenia. Výstup senzora zákalu je analógový, takže pripojený k pinu A0 Arduina, I2C LCD pripojený k pinom I2C Arduina, čo je SCL na A5 a SDA na A4. Potom sa RGB LED pripojila k digitálnym pinom D2, D3 a D4. Po dokončení pripojení bude moje nastavenie hardvéru vyzerať takto.
Pripojte VCC snímača k Arduino 5v a potom uzemnite zem. Výstupný pin snímača na analógový 0 Arduina. Ďalej pripojte VCC a uzemnenie LCD modulu k 5v a uzemneniu Arduina. Potom SDA na A4 a SCL na A5, tieto dva piny sú I2C piny Arduina. nakoniec pripojí zem RGB LED k zemi Arduino a pripojí zelenú k D3, modrú k D4 a červenú k D5.
Programovanie Arduina na meranie zákalu vo vode
V pláne je zobraziť hodnoty zákalu od 0 do 100. To znamená, že merač by mal zobrazovať 0 pre čistú kvapalinu a 100 pre vysoko zakalené. Tento Arduino kód je tiež veľmi jednoduchý a kompletný kód nájdete v spodnej časti tejto stránky.
Najskôr som zahrnul knižnicu tekutých kryštálov I2C, pretože na minimalizáciu pripojení používame I2C LCD.
# zahrnúť
Potom som nastavil celé číslo pre vstup snímača.
int senzorPin = A0;
V časti nastavenia som definoval piny.
pinMode (3, VÝSTUP); pinMode (4, VÝSTUP); pinMode (5, VÝSTUP);
V časti so slučkou, ako som už uviedol, je výstup zo snímača analógová hodnota. Musíme si teda tieto hodnoty prečítať. Pomocou funkcie Arduino AnalogRead môžeme načítať výstupné hodnoty v sekcii slučky.
int sensorValue = analogRead (sensorPin);
Najprv musíme porozumieť chovaniu nášho snímača, čo znamená, že musíme načítať minimálnu hodnotu a maximálnu hodnotu senzora zákalu. túto hodnotu môžeme načítať na sériovom monitore pomocou funkcie serial.println .
Ak chcete získať tieto hodnoty, najskôr si voľne prečítajte senzor, ktorý je bez riešenia. Dostal som hodnotu okolo 640 a potom, umiestnite čiernu látku medzi vysielač a prijímač, dostaneme hodnotu, ktorá je minimálnou hodnotou, zvyčajne je táto hodnota nulová. Takže sme dostali 640 ako maximum a nulu ako minimum. Teraz musíme tieto hodnoty previesť na 0-100
Na to som použil mapovú funkciu Arduina.
int turbidita = mapa (sensorValue, 0,640, 100, 0);
Potom som tieto hodnoty zobrazil na LCD displeji.
lcd.setCursor (0, 0); lcd.print ("zákal:"); lcd.print (""); lcd.setCursor (10, 0); lcd.tlač (zákal);
Potom som pomocou podmienok if dal iné podmienky.
if (zákal <20) { digitalWrite (2, HIGH); digitalWrite (3, LOW); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print („jeho VYMAZAŤ“); }
Toto aktivuje zelenú kontrolku a na displeji LCD sa zobrazí „jeho jasné“, ak je hodnota zákalu pod 20.
if ((zákal> 20) && (zákal <50)) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("jeho CLOUDY"); }
Toto aktivuje modrú LED a na LCD zobrazí „jeho zakalenie“, ak je hodnota zákalu medzi 20 a 50.
if ((zákal> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print („its DIRTY“); }
Toto aktivuje červenú kontrolku a na displeji LCD sa zobrazí „je znečistené“, ak je hodnota zákalu vyššia ako 50, ako je uvedené nižšie.
Postupujte podľa schémy zapojenia a nahrajte kód. Ak všetko pôjde správne, mali by ste byť schopní zmerať zákal vody a na displeji LCD by sa mala zobrazovať kvalita vody, ako je uvedené vyššie.
Pamätajte, že tento merač zákalu zobrazuje percento zákalu a nemusí to byť presná priemyselná hodnota, ale aj tak ho možno použiť na porovnanie kvality vody pre dve vody. Kompletné fungovanie tohto projektu nájdete vo videu nižšie. Dúfam, že sa vám tutoriál páčil a dozvedeli ste sa niečo užitočné, ak máte akékoľvek otázky, môžete ich zanechať v sekcii komentárov nižšie alebo môžete na zverejnenie svojich technických otázok použiť fóra CircuitDigest alebo začať príslušnú diskusiu.