- Kas yra drumstumas skystyje?
- Kaip išmatuoti drumstumą naudojant „Arduino“?
- Komponentai, reikalingi drumstumo matuokliui gaminti
- Drumstumo jutiklio apžvalga
- Pagrindinės drumstumo modulio savybės
- Sąveikaujantis drumstumo jutiklis su „Arduino“ - grandinės schema
- „Arduino“ programavimas vandens drumstumui matuoti
Kalbant apie skysčius, drumstumas yra svarbus terminas. Kadangi jis vaidina svarbų vaidmenį skysčių dinamikoje ir yra naudojamas vandens kokybei matuoti. Taigi šioje pamokoje aptarkime, kas yra drumstumas, kaip išmatuoti skysčio drumstumą naudojant „Arduino“. Jei norite tęsti šį projektą, taip pat galite apsvarstyti galimybę susieti pH matuoklį su „Arduino“ ir perskaityti vandens pH vertę, kad galėtumėte geriau įvertinti vandens kokybę. Anksčiau mes taip pat sukūrėme IoT pagrįstą vandens kokybės stebėjimo įrenginį naudodami ESP8266, taip pat galite tai patikrinti, jei susidomėjote. Tai sakant, pradėkime
Kas yra drumstumas skystyje?
Drumstumas yra skysčio drumstumo laipsnis arba lygis. Tai atsitinka dėl to, kad ore yra daug nematomų dalelių (plika akimi), panašių į baltus dūmus. Kai šviesa praeina per skysčius, šviesos bangos išsisklaido dėl šių mažų dalelių buvimo. Skysčio drumstumas yra tiesiogiai proporcingas laisvoms suspenduotoms dalelėms, ty jei dalelių skaičius padidina drumstumą, taip pat padidės.
Kaip išmatuoti drumstumą naudojant „Arduino“?
Kaip jau minėjau anksčiau, drumstumas įvyksta dėl šviesos bangų sklaidos, kad išmatuotume drumstumą, turėtume išmatuoti šviesos sklaidą. Drumstumas paprastai matuojamas nefelometriniais drumstumo vienetais (NTU) arba Džeksono drumstumo vienetais (JTLJ), atsižvelgiant į matavimui naudojamą metodą. Šie du vienetai yra maždaug vienodi.
Dabar pažiūrėkime, kaip veikia drumstumo jutiklis, jį sudaro dvi dalys: siųstuvas ir imtuvas. Siųstuvą sudaro šviesos šaltinis, paprastai vedantis ir tvarkyklės grandinė. Imtuvo gale yra šviesos detektorius, pavyzdžiui, fotodiodas arba LDR. Tirpalą dedame tarp siųstuvo ir imtuvo.
Siųstuvas tiesiog perduoda šviesą, kad šviesos bangos praeina per tirpalą, o imtuvas gauna šviesą. Paprastai (be tirpalo) perduodama šviesa visiškai gauna imtuvo pusę. Bet esant drumstam tirpalui, perduodamos šviesos kiekis yra labai mažas. Tai yra imtuvo pusėje, mes gauname tik mažo intensyvumo šviesą ir šis intensyvumas yra atvirkščiai proporcingas drumstumui. Taigi drumstumą galime išmatuoti matuodami šviesos intensyvumą, jei šviesos intensyvumas yra didelis, tirpalas yra mažiau drumstas ir, jei šviesos intensyvumas yra labai mažas, tai reiškia, kad tirpalas yra labiau drumstas.
Komponentai, reikalingi drumstumo matuokliui gaminti
- Drumstumo modulis
- Arduino
- 16 * 2 I2C LCD
- Bendras katodo RGB LED
- Bandomoji Lenta
- Džemperių laidai
Drumstumo jutiklio apžvalga
Šiame projekte naudojamas drumstumo jutiklis parodytas žemiau.
Kaip matote, šis drumstumo jutiklio modulis yra 3 dalių. Neperšlampamas laidas, vairuotojo grandinė ir jungiamasis laidas. Bandymo zondą sudaro tiek siųstuvas, tiek imtuvas.
Aukščiau pateiktame paveikslėlyje parodyta, kad šio tipo moduliai naudoja IR diodą kaip šviesos šaltinį ir IR imtuvą kaip detektorių. Tačiau darbo principas yra toks pat kaip ir anksčiau. Vairuotojo dalį (parodyta žemiau) sudaro op-amp ir kai kurie komponentai, kurie sustiprina aptiktą šviesos signalą.
Tikrąjį jutiklį prie šio modulio galima prijungti naudojant JST XH jungtį. Jis turi tris kaiščius, VCC, įžeminimą ir išvestį. Vcc jungiasi prie 5v ir žemė į žemę. Šio modulio išvestis yra analogiška reikšmė, ty ji keičiasi atsižvelgiant į šviesos intensyvumą.
Pagrindinės drumstumo modulio savybės
- Darbinė įtampa: 5VDC.
- Srovė: 30mA (MAX).
- Darbinė temperatūra: nuo -30 ° C iki 80 ° C.
- Suderinamas su „Arduino“, „Raspberry Pi“, AVR, PIC ir kt.
Sąveikaujantis drumstumo jutiklis su „Arduino“ - grandinės schema
Visa schema, skirta drumstumo jutikliui prijungti prie „Arduino“, parodyta žemiau, grandinė buvo sukurta naudojant „EasyEDA“.
Tai labai paprasta grandinės schema. Drumstumo jutiklio išvestis yra analogiška, prijungta prie „Arduino“ A0 kaiščio, „I2C“ LCD jungiama prie „Arduino“ I2C kaiščių, ty SCL – A5 ir SDA – A4. Tada RGB šviesos diodas prijungtas prie skaitmeninių kaiščių D2, D3 ir D4. Atlikus ryšius, mano aparatūros sąranka atrodo taip žemiau.
Prijunkite jutiklio VCC prie „Arduino 5v“, tada prijunkite žemę prie žemės. Jutiklio išvesties kaištis į „Arduino“ analogą 0. Tada prijunkite VCC ir LCD modulio įžeminimą prie 5v ir „Arduino“ įžeminimo. Tada nuo SDA iki A4 ir nuo SCL iki A5, šie du kaiščiai yra „Arduino“ I2C kaiščiai. galiausiai sujungia RGB LED žemę su „Arduino“ žeme ir žalią jungia prie D3, mėlyną - prie D4 ir raudoną - prie D5.
„Arduino“ programavimas vandens drumstumui matuoti
Planuojama rodyti drumstumo vertes nuo 0 iki 100. Tai reiškia, kad matuoklyje grynam skysčiui turėtų būti rodoma 0, o labai drumzliniam - 100. Šis „Arduino“ kodas taip pat yra labai paprastas, o visą kodą galite rasti šio puslapio apačioje.
Pirma, aš įtraukiau I2C skystųjų kristalų biblioteką, nes mes naudojame I2C LCD, kad sumažintume ryšius.
# įtraukti
Tada nustatau jutiklio įvesties sveikąjį skaičių.
int jutiklisPin = A0;
Sąrankos skyriuje aš apibrėžiau kaiščius.
pinMode (3, OUTPUT); pinMode (4, OUTPUT); pinMode (5, OUTPUT);
Ciklo skyriuje, kaip jau minėjau anksčiau, jutiklio išvestis yra analogiška vertė. Taigi turime perskaityti tas vertybes. Naudodami „Arduino AnalogRead“ funkciją, mes galime perskaityti išvesties reikšmes ciklo skyriuje.
int sensorValue = analogRead (sensorPin);
Pirma, mes turime suprasti savo jutiklio elgesį, o tai reiškia, kad turime perskaityti minimalią ir didžiausią drumstumo jutiklio vertę. mes galime nuskaityti tą vertę nuosekliame monitoriuje naudodami serial.println funkciją.
Norėdami gauti šias vertes, pirmiausia laisvai perskaitykite jutiklį, be jokio sprendimo. Aš gavau vertę apie 640, o po to įdėkite juodą medžiagą tarp siųstuvo ir imtuvo, mes gauname vertę, kuri yra mažiausia vertė, paprastai ta vertė yra lygi nuliui. Taigi maksimaliai gavome 640, o minimumą - nulį. Dabar turime konvertuoti šias reikšmes į 0–100
Tam panaudojau „ Arduino“ žemėlapio funkciją.
int drumstumas = žemėlapis (sensorValue, 0,640, 100, 0);
Tada šias vertes atvaizdavau LCD ekrane.
lcd.setCursor (0, 0); lcd.print ("drumstumas:"); lcd.print (""); lcd.setCursor (10, 0); lcd.print (drumstumas);
Po to su „ if“ sąlygomis padėjau kitokias sąlygas.
if (drumstumas <20) { digitalWrite (2, HIGH); „digitalWrite“ (3, LOW); „digitalWrite“ (4, LOW); lcd.setCursor (0, 1); lcd.print ("jo AŠKAI"); }
Jei drumstumo vertė yra mažesnė nei 20, bus aktyvuota žalia lemputė ir LCD ekrane bus rodoma „aišku“
if ((drumstumas> 20) && (drumstumas <50)) { digitalWrite (2, LOW); „digitalWrite“ (3, HIGH); „digitalWrite“ (4, LOW); lcd.setCursor (0, 1); „lcd.print“ („jo PASIŪLYMAI“); }
Tai aktyvins mėlyną lemputę ir ekrane rodys „jos debesuota“, jei drumstumo vertė yra tarp 20 ir 50.
if ((drumstumas> 50) { digitalWrite (2, LOW); digitalWrite (3, HIGH); digitalWrite (4, LOW); lcd.setCursor (0, 1); lcd.print ("jos DIRTY"); }
Jei drumstumo reikšmė yra didesnė nei 50, kaip parodyta žemiau, įjungs raudoną šviesos diodą ir ekrane bus rodoma „jis nešvarus“.
Tiesiog sekite schemą ir įkelkite kodą, jei viskas bus teisinga, turėtumėte galėti išmatuoti vandens drumstumą, o skystųjų kristalų ekranas turėtų rodyti vandens kokybę, kaip parodyta aukščiau.
Atkreipkite dėmesį, kad šis drumstumo matuoklis parodo drumstumo procentą ir gali būti tiksli pramoninė vertė, tačiau vis tiek jis gali būti naudojamas dviejų vandens vandens kokybei palyginti. Visą šio projekto darbą galite rasti žemiau esančiame vaizdo įraše. Tikimės, kad jums patiko pamoka ir sužinojote ką nors naudingo, jei turite kokių nors klausimų, galite palikti juos toliau pateiktame komentarų skyriuje arba naudoti „CircuitDigest“ forumus savo techniniams klausimams skelbti arba pradėti atitinkamą diskusiją.