Proiectul constă în realizarea unui dispozitiv etilotest digital portabil, care detectează nivelul de alcool din aerul expirat utilizând senzorul MQ-3. Pe lângă afișarea rezultatelor pe un displayși oferirea de feedback vizual și sonor, proiectul include un mecanism de siguranță suplimentar: un motor acționează un sistem de blocare care restricționează accesul la cheile mașinii în cazul unui nivel ridicat de alcool. Astfel, dispozitivul nu doar informează utilizatorul, ci contribuie activ la prevenirea luării unor decizii periculoase în trafic.
Scopul principal al acestui proiect este de a crea un sistem accesibil și eficient care să permită utilizatorilor să evalueze rapid nivelul de alcool din respirație înainte de a decide dacă sunt apți pentru a conduce.
După inițializare și încălzirea senzorului MQ-3, utilizatorul poate porni testul prin apăsarea butonului. Timp de aproximativ 7 secunde, senzorul captează nivelul de alcool din aerul expirat. Datele sunt analizate de către microcontrollerul Arduino, care determină în ce categorie de risc se încadrează utilizatorul.
Rezultatul este afișat pe ecran și este însoțit de un semnal sonor distinct. Dacă nivelul este sigur, motorul acționează un mecanism ce eliberează cheile mașinii. În caz contrar, acestea rămân blocate. Astfel, sistemul oferă o reacție imediată, clară și preventivă, orientată spre siguranța utilizatorului.
Dispozitivul este alcătuit din următoarele componente principale:
Toate aceste componente funcționează împreună pentru a oferi un sistem complet, care nu doar evaluează nivelul de alcool, ci și acționează asupra unui element fizic de control — blocarea cheilor auto.
Lista de piese:
Pin Arduino | Tip | Conectat la | Descriere |
---|---|---|---|
D2 | Digital / INT0 | Buton | Buton pentru inițiere test / închidere ușă, folosește întrerupere externă INT0 cu debounce. |
D4 | Digital | Buzzer activ HND-2312 | Emitere semnal sonor pentru avertizare sau confirmare. |
D7 | Digital | LED verde | Aprins când utilizatorul este apt de condus. |
D6 | Digital | LED galben | Aprins când nivelul necesită așteptare (valoare medie). |
D8 | Digital | LED roșu | Aprins când nivelul de alcool este periculos. |
D9 (OC1A) | PWM hardware | Servo motor SG90 | Controlează servo-ul care eliberează sau blochează cheia. PWM generat de Timer1. |
A0 | Analog input | Senzor MQ-3 | Citește nivelul de alcool prin conversie analog-digital (ADC). |
A4 (SDA) | I2C data line | LCD1602 I2C | Comunicare I2C cu modulul de afișaj LCD (date). |
A5 (SCL) | I2C clock line | LCD1602 I2C | Comunicare I2C cu modulul de afișaj LCD (clock). |
GND | Power | Masă comună | Conexiune de masă pentru toate componentele (comună cu bateriile și senzorul). |
5V | Power | LCD, senzor MQ-3, LED-uri | Tensiune stabilă furnizată de Arduino pentru alimentarea componentelor cu consum mic. |
Programul începe prin apelarea funcțiilor de inițializare:
După inițializare, începe faza de încălzire a senzorului MQ-3, folosind variabila `systicks` pentru temporizare. Progresul este afișat pe LCD în procente.
După terminarea încălzirii:
După finalizarea măsurării:
Dacă ușa este deschisă:
În final:
Generează un număr specificat de beep-uri scurte, fiecare având o durată configurabilă în milisecunde. Este utilizată pentru avertizare (galben) sau confirmare (verde).
Inițiază o conversie analog–digitală pe pinul A0 și returnează valoarea digitală corespunzătoare nivelului de alcool detectat de senzorul MQ-3. Este apelată periodic în timpul măsurării și în faza de stabilizare.
Configurează întreruperea externă INT0 pentru a detecta apăsarea butonului de test. Activează flancul descendent și permite reacția instantanee prin `ISR(INT0_vect)`.
Trimite 4 biți către LCD (în mod comandă sau date), împreună cu semnalul de strobe (`ENABLE`). Este parte din comunicația I2C la nivel de protocol LCD.
Valoare senzor MQ-3 | LED | Acțiune sistem |
---|---|---|
sub 500 | Verde | Se afișează “You can drive”, servo deschide cheia, 1 beep scurt |
500 – 569 | Galben | Se afișează “Wait 1 hour”, 3 beep-uri, cheia rămâne blocată |
570 – 649 | Galben | Se afișează “Wait few hours”, 3 beep-uri, cheia rămâne blocată |
650 și peste | Roșu | Se afișează “DO NOT DRIVE!”, buzzer continuu, cheia blocată |
Sistemul clasifică nivelul de alcool detectat în patru intervale de risc, oferind un răspuns imediat și intuitiv prin afișaj, LED-uri, semnale sonore și controlul servo-motorului. Această abordare contribuie la creșterea siguranței utilizatorului și la prevenirea condusului sub influența alcoolului.