Dragoş-Cosmin DIMITRIU (25608) - Alcooltest

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Prin acest proiect doresc sa implementez un ALCOOLTEST. Alcooltest-ul este un dispozitiv care masoara cantitatea de alcool din aerul expirat. Scopul acestui proiect este oferirea unui mod de a testa daca o persoana este in limita legala pentru a conduce si, de ce nu, o metoda de a afla cine a baut mai mult la o ieseala :).

Descriere generală

Schema bloc este reprezentata de 3 module:

  • ATmega324
  • Senzor de alcool
  • LCD 16×2

Dupa ce o persoana va sufla in senzorul de alcool, voi citi datele si le voi procesa pe placuta. Dupa care, voi afisa un mesaj sugestiv pe display-ul LCD, care va exprima cantitatea de alcool din aerul expirat.

Hardware Design

Lista de piese:

  • componente de baza: controller ATmega324, leduri, bareta, rezistoare etc.
  • LCD 16×2 - 40 lei - o piesa
  • rezistoare 1K, 10K, 2,2K - 0,10 lei/rezistor - 10 piese
  • leduri rosii - 1 leu/led - 3 piese
  • leduri verzi - 0,35 lei/led - 2 piese
  • fire de conexiune mama-mama - 17 lei (grup de 40 de fire) - o piesa
  • condensatoare 100 nF, 15pF - 0,15 lei/condensator 3 piese
  • jumper - 0,12 lei - o piesa
  • bareta - 1,80 lei - o piesa
  • placa de test - 12 lei - o piesa
  • senzor de alcool gazos MQ-3 - 27,99 lei - o piesa
  • bareta de pini mama - 2 lei - o bareta
  • cabluri de breadboard - 20 lei - 12 cabluri

Schema electrica:

Software Design

Pentru aceasta aplicatie, datorita faptului ca mereu variaza cantitatea de alcool ce o inregistreaza, datorita afinitatii, am ales sa fac citirea de pe senzor prin polling. La fiecare iteratie, citesc valoarea de pe PA0. Functie de cantitatea de alcool din aerul expirat afisez un mesaj corespunzator la LCD.

De asemenea, la apasarea butonului(BTN) de pe placuta, se va afisa un istoric al ultimelor 10 zile cu cantitatile de alcool expiratea alaturi de aprinderea LED-ului rosu. In cazul in care a fost din nou apasat, se revine la inregistrarea alcoolului din aerul expirat de pe senzor. Datele au fost stocate anterior pe EEPROM (memoria flash a microprocesorului).

Rezultate Obţinute

Partea de software si hardware a fost un succes, mai putin faptul ca s-a stricat senzorul de alcool. Am testat senzorul de alcool cu un osciloscop, pentru a verifica daca mai merge si mereu a fost citita o tensiune de 0V. Restul componentelor hardware sunt perfect functionale.

Senzorul MQ-3 dispune si de un potentiometru. Am umblat la potentiometru pentru a-l face mai sensibil. Valoarea care este data pe pin-ul de analog, este scrisa pe 8 biti. Daca potentiometrul este dat la minim (rezistenta minima), se aprinde LED-ul de digital si placuta poate da si valori pe 9 biti. Asta se realizeaza prin citirea de pe pin-ul de analog out (AOUT) si citirea bit-ului de pe digital out (DOUT). Acestia doi se concateneaza, cu bit-ul de digital fiind cel mai semnificativ, si restul de 8 biti la dreapta lui. Am incercat si aceasta metoda de a citi, dar, din pacate, pe ambii pini de output s-a citit valoarea 0.

Pentru a testa software-ul, am folosit un microfon preamplificat care functioneaza pe acelasi principiu : Alimentare, Ground si Output Analog. In momentul in care l-am conectat pe placuta, pe display, apareau valori citite de la microfon. Daca produceam un zgomot puternic sau faceam liniste, valoarea de pe display, citita anterior de pe PA0, se actualiza corespunzator.

Concluzii

Proiectul a fost foarte interesant si am invatat multe lucruri despre lucrul cu astfel de componente, programare pe embedded si lucrul cu datasheet-uri. Din pacate, nu am putut aduce proiectul in starea finala deoarece senzorul s-a defectat. Voi reveni cu detalii dupa ce voi face rost de un nou senzor.

Download

Bibliografie/Resurse

pm/prj2016/csoare/dragos.dimitriu.txt · Last modified: 2021/04/14 17:07 (external edit)
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