Turbidity Measuring

Autor: LUCA Andrei

Introducere

Voi analiza claritatea unei solutii dintr-un pahar.

Descriere generală

Proiectul pleaca de la ideea folosirii unui senzor de turbiditate. Transmit masurarea limpezimii apei cu ajutorul unei placute arduino si a unui senzor de turbiditate pe un LCD. Pe LCD afisez un procent de claritate si o apreciere subiectiva a apei in functie de acest procent, aprinzand de asemenea o culoare specifica de pe LED-ul RGB.

Hardware Design

Componentele pe care le-am folosit in proiect sunt:

  • Senzor de turbiditate;
  • Arduino;
  • Fire;
  • Rezistente;
  • RGB Led;
  • Breadboard;
  • LCD pe care vad masuratorile;
  • modul I2C pentru LCD.

Am folosit un alt senzor in schema electrica, care tine locul senzorului de turbiditate, pentru ca pe acesta nu l-am gasit.

Software Design

Pe parte de software am folosit ide-ul de Arduino pentru a lega codul meu la placuta fizica arduino.

In cadrul implementarii am integrat biblioteca LiquidCrystal_I2C.h pentru a putea lucra cu LCD-ul si modulul I2C. Astfel am folosit functiile de initializare pentru LCD: init() si backlight(). Init pregateste LCD-ul de utilizare cu parametrii necesari, cu coloanele si randurile lui, iar functia de backlight aprinde lumina de background, asa cum ii spune si numele. Pe langa acestea, am folosit si functiile de print() si setCursor() pentru a scrie pe LCD.

In functia loop() retin intr-o variabila valoarea citita de senzorul de turbiditate. Apoi, afisand pe serial monitor aceasta valoare, am observat ca senzorul trimite valori cam din intervalul 0-1000 pe care am decis sa le scalez intre 0-100 pentru a le trata ca pe un procent de claritate. Mai departe, intre fiecare afisaj pe LCD, am pus un delay, deoarece altfel nu se poate intelege nimic pe acesta, citirile senzorului fiind foarte rapide. LCD-ul are atasat un modul I2C cu pinii lipiti, astfel incat fac conectarea intre el si arduino doar prin cei 4 pini ai modulului I2C, si anume VCC, GND, SDA si SCL.

Ramane, in final, doar sa aleg 3 intervale pentru 3 aprecieri diferite ale apei(limpede, tulbure, murdara). Dupa ce am ales aceste intervale, pentru fiecare voi aprinde o culoare de pe LED-ul RGB dupa cum urmeaza:

  • VERDE – pentru apa limpede;
  • ALBASTRU – pentru apa tulbure;
  • ROSU – pentru apa murdara.

Acest lucru il fac folosind functia analogWrite() care trimite valoarea data de mine la fiecare pin al fiecarei culori. De asemenea, am adaugat rezistente de 330Ω pe fiecare pin de pe LED-ul RGB pentru a diminua un pic intensitatea culorilor.

Rezultate Obţinute

Concluzii

Am ales un proiect de dificultate medie as spune, intrucat nu mai lucrasem niciodata cu placute hardware pana acum. Intr-adevar, chiar daca a fost ceva nou pentru mine, in momentul cand am reusit sa fac sa afiseze ceva pe LCD, am simtit o mica bucurie in mine. A fost ca prima data cand am facut cu mana mea un program in C/C++ sa ruleze. Niciodata nu uiti “prima data”.

Totusi mi-as fi dorit sa complic un pic mai mult proiectul, utilizand eventual si un modul bluetooth, dar programul meu a devenit foarte incarcat in ultimul timp si nu am reusit sa ma mai incadrez cu achizitia si integrarea unor piese suplimentare. Cu siguranta voi incerca sa il mai dezvolt, dar pentru acest Milestone final, atat am reusit sa implementez.

O dificultate pe care am intampinat-o a fost ca pinii de pe LED-ul RGB aparent nu corespundea culorilor asa cum m-as fi asteptat. Doar cel de catod comun era cel asteptat, restul au fost in alta ordine.

In concluzie, proiectul a fost ceva util din care am invatat sa lucrez cu placuta arduino si sa realizez un proiect hardware de la 0. Spre deosebire de alte materii, la PM, desi a fost un semestru full on-line, am avut foarte multa parte practica in cadrul materiei, modalitatea care mi se pare cea mai buna pentru a invata. Good job PM Team!

Download

Bibliografie/Resurse

pm/prj2021/cghenea/turbiditymeasuring.txt · Last modified: 2021/06/02 16:25 by andrei.luca1503
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