Autorul poate fi contactat la adresa: Login pentru adresa
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 :).
Schema bloc este reprezentata de 3 module:
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.
Lista de piese:
Schema electrica:
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).
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.
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.