This is an old revision of the document!
Etilotest – Dispozitiv de Măsurare a Alcoolemiei
Introducere
Proiectul Etilotest constă în realizarea unui dispozitiv electronic capabil să detecteze nivelul de alcool din aerul expirat de utilizator, folosind un senzor de gaz MQ-3. Scopul proiectului este de a învăța cum să integrăm senzori analogici, conversie ADC, afișaj și alerte sonore/vizuale într-un sistem embedded simplu, dar funcțional.Ideea a pornit de la dorința de a crea un dispozitiv portabil și accesibil care să atragă atenția asupra consumului de alcool, fiind totodată un proiect educativ excelent pentru învățarea principiilor de bază în proiectarea microprocesoarelor.Dispozitivul se dorește a fi util în contexte precum testarea demonstrativă în școli sau acasă, fără a înlocui un etilotest profesional.
Descriere generală
Dispozitivul este alcătuit din următoarele module:
Senzor de gaz MQ-3 – detectează alcoolul din aerul expirat
Microcontroler ATmega324P – citește semnalul analogic și îl procesează
Display LCD 16×2 – afișează nivelul estimat al alcoolemiei și mesaje sugestive
LED-uri colorate (verde, galben, roșu) – indică vizual nivelul de alcool
Buzzer – emite un semnal sonor în caz de depășire a pragului critic
Fluxul de date:
Senzor MQ-3 → ADC ATmega324P → procesare → afișare pe LCD + LED-uri/buzzer
Laboratoare utilizate
În realizarea proiectului am folosit concepte din următoarele laboratoare:
Folosit pentru controlul LED-urilor și al buzzer-ului, precum și pentru inițializarea pinilor digitali.
Citirea valorilor analogice de la senzorul MQ-3 s-a realizat prin conversie analog–digital pe un pin ADC.
Utilizarea unui display LCD 16×2 conectat la porturile digitale ale microcontrolerului pentru a afișa mesaje și niveluri.
Dacă buzzer-ul este controlat prin semnal PWM, se poate integra și acest laborator.
Hardware Design
Componente utilizate:
Microcontroler ATmega328P – unitatea centrală de procesare -
Link
Senzor de gaz MQ-3 – detectează alcoolul din aer -
Link
Display LCD 16×2 – afișează informații către utilizator -
Link
LED-uri (verde, galben, roșu) – indică nivelul de alcoolemie -
Link
Buzzer – avertizează sonor la depășirea unui prag -
Link
Rezistențe – pentru limitarea curentului prin LED-uri (ex. 220Ω) -
Link
Fire de conexiune și breadboard – pentru asamblarea circuitului -
Link
Schema electrică:
Senzor MQ-3 → alimentat la 5V, ieșirea analogică conectată la pinul ADC al ATmega324P
Display LCD → conectat la porturi digitale (folosind mod 4-bit sau 8-bit)
LED-uri → conectate la pinii digitali, fiecare printr-o rezistență de limitare
Buzzer → conectat la un pin digital și controlat cu semnal PWM
Software Design
Descrierea codului aplicatiei (firmware):
Mediu de dezvoltare: Arduino IDE
Librarii si surse 3rd-party: LiquidCrystal_I2C pentru afisajul LCD
Algoritmi si structuri implementate:
Citire analogica personalizata cu ADC pentru senzorul MQ-3
Conversie a valorii senzorului in valoare estimata de alcoolemie (BAC)
Afișare conditionala pe LCD in functie de praguri stabilite
Feedback auditiv prin buzzer
`setupADC()` pentru configurarea manuala a convertorului analog-digital
`analogReadCustom()` pentru citirea valorii analogice de pe MQ-3
`convertToBAC()` pentru estimarea alcoolemiei
Logica de afisare si semnalizare in `loop()`, conditionata de apasarea butonului
====== Rezultate Obţinute ======
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
====== Concluzii ======
Care au fost rezultatele obtinute in urma realizarii proiectului vostru:
sistemul a functionat conform asteptarilor
valorile senzorului au fost afisate corect si interpretate prin mesaje text
buzzerul a emis semnale sonore diferite in functie de nivelul alcoolemiei
conversia valorii analogice in estimare BAC a fost implementata cu succes
interfata cu utilizatorul (buton + afisaj LCD) este simpla si intuitiva
====== Download ======
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
====== Jurnal ======
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
====== Bibliografie/Resurse ======
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF