Masurator pentru turbiditatea apei
Introducere
Scopul proiectului este de a masura turbiditatea apei. Turbiditatea reprezinta, de fapt, nivelul de opacitate al apei, lucru care poate fi influentat de mai multi factori precum prezenta unor particule de pamant si argila, deseuri umane, animale sau chiar si industriale etc. Masurarea turbiditatii este astfel importanta in monitorizarea apei. O crestere a turbiditatii indica existenta unor particule in apa ce ar putea afecta calitatea acesteia de a fi potabila.
Pentru proiect voi folosi 3 LED-uri: un LED verde care imi va indica daca nivelul turbiditatii apei este sub limitele standard, unul galben care ma avertizeaza ca apa devine tulbure si unul rosu daca apa depaseste limitele normale. Pe un ecran voi afisa si masuratorile.
Aceasta idee mi-a venit amintindu-mi de un articol despre poluarea aerului, in care se discuta cum particulele de aer poluat nu se acumuleaza doar pe pielea noastra, ci si in apa din jurul nostru.
Descriere generală
Hardware Design
Lista de piese:
1x Ecran LCD
1x Arduino UNO
3x LED-uri
3x Rezistente
1x Senzor turbiditate
1x Breadboard
Fire
Schema electrica:
Mai intai conectez toate piesele la GND si VCC (la montaj ma voi folosi de un breadboard).
Pentru ecranul LCD duc pinii SCL si SDA la A5, respectiv A4 pe placa Arduino. In urma unei documentari online, am descoperit ca acestia sunt conventional folositi pentru comunicatia I2C. Nu am utilizat pinii I2C dedicati de pe placuta din cauza limitarii spatiului pe schema. Totusi la montare i-as putea folosi.
Am conectat senzorul de turbiditate la modulul acestuia pe pinii 1, 2 si 3. Deoarece modulul utilizeaza o interfata analogica, am ales sa conectez pinul sau analogic A la pinul A0 de pe Arduino.
Fiecare LED l-am inlantuit in serie cu cate o rezistenta de 220k ohmi pentru a limita curentul care trece prin LED-uri. LED-ul verde l-am conectat la pinul digital 2, cel galben la pinul 4, iar rosu la 6 (numere alese aleator).
Conectarea componentelor:
Software Design
Descrierea codului aplicaţiei (firmware):
LiquidCrystal_I2C.h, pentru a afisa valorile citite de la senzor si rezultatele calculate
Arduino.h, pentru a folosi functii de baza din Arduino
Citirea valorilor de la senzorul de turbiditate folosind ADC
Conversia valorilor citite in volti
Calcularea valorilor NTU (Nephelometric Turbidity Units) pe baza voltajului
Afisarea valorilor pe LCD
Controlul LED-urilor pentru indicarea nivelului de turbiditate
setup(): configurarea pinilor pentru LED-uri ca OUTPUT, initializarea ecranului LCD, configurarea ADC-ului pentru citirea de la senzor
loop(): citirea valorilor de la senzor, calcularea voltajului si a turbiditatii, afisarea rezultatelor pe ecran, controlul reactiei LED-urilor
readADC(uint8_t channel): citirea de la un canal specific al ADC-ului
calcNTU(float voltage): calcularea valorii NTU pe baza voltajului citit de la senzor
Rezultate Obţinute
Proiectul functioneaza asa cum intentionam: atunci cand apa este curata sau mai tulbure, se afiseaza pe LCD un mesaj corespunzator si se aprinde LED-ul care indica starea respectiva.
Concluzii
La inceput credeam ca o sa fie mult mai greu pentru ca nu stiam cum sa conectez LED-urile in serie cu rezistentele pe breadboard, nici pinii dintre piese, dar de fapt a fost destul de simplu si intuitiv. Mi-a placut sa fac legaturile dintre componente, sa testez singura cu ajutorul breadboard-ului cand faceam vreo gafa, ca dupa aceea sa inteleg de ce trebuie sa pun LED-urile intr-un anumit fel si sa-mi dea rezultatul asteptat.
Download
Jurnal
22-25 aprilie: alegerea temei
10-12 mai: cautarea pieselor si achizitionarea acestora
13-14 mai: realizarea schemei electrice
16-17 mai: lucrat la hardware si scris cod in Arduino IDE pentru testarea functionalitatii
20-22 mai: imbunatatire hardware, scris cod pentru partea de software folosind registrii pentru LED-uri si un ADC pentru senzor
23 mai: finalizarea proiectului
Bibliografie/Resurse