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:

  • Laborator 0 – GPIO

Folosit pentru controlul LED-urilor și al buzzer-ului, precum și pentru inițializarea pinilor digitali.

  • Laborator 4 – ADC (Analog to Digital Converter)

Citirea valorilor analogice de la senzorul MQ-3 s-a realizat prin conversie analog–digital pe un pin ADC.

  • Laborator 5 – Afișaj LCD

Utilizarea unui display LCD 16×2 conectat la porturile digitale ale microcontrolerului pentru a afișa mesaje și niveluri.

  • Laborator 3 – PWM

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:
  1. Citire analogica personalizata cu ADC pentru senzorul MQ-3
  2. Conversie a valorii senzorului in valoare estimata de alcoolemie (BAC)
  3. Afișare conditionala pe LCD in functie de praguri stabilite
  4. Feedback auditiv prin buzzer
  • (etapa 3) Surse si functii implementate:
  1. `setupADC()` pentru configurarea manuala a convertorului analog-digital
  2. `analogReadCustom()` pentru citirea valorii analogice de pe MQ-3
  3. `convertToBAC()` pentru estimarea alcoolemiei
  4. 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 =====

===== 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

pm/prj2025/rnedelcu/petrisor.caramida.1747722582.txt.gz · Last modified: 2025/05/20 09:29 by petrisor.caramida
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