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):

  • Mediu de dezvoltare: PlatformIO integrat in Visual Studio Code, C++
  • Librarii folosite:
  1. LiquidCrystal_I2C.h, pentru a afisa valorile citite de la senzor si rezultatele calculate
  2. Arduino.h, pentru a folosi functii de baza din Arduino
  • Algoritmi si structuri:
  1. Citirea valorilor de la senzorul de turbiditate folosind ADC
  2. Conversia valorilor citite in volti
  3. Calcularea valorilor NTU (Nephelometric Turbidity Units) pe baza voltajului
  4. Afisarea valorilor pe LCD
  5. Controlul LED-urilor pentru indicarea nivelului de turbiditate
  • Surse si functii implementate:
  1. setup(): configurarea pinilor pentru LED-uri ca OUTPUT, initializarea ecranului LCD, configurarea ADC-ului pentru citirea de la senzor
  2. loop(): citirea valorilor de la senzor, calcularea voltajului si a turbiditatii, afisarea rezultatelor pe ecran, controlul reactiei LED-urilor
  3. readADC(uint8_t channel): citirea de la un canal specific al ADC-ului
  4. 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

pm/prj2024/alucaci/irina.costache.txt · Last modified: 2024/05/23 14:53 by irina.costache
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0