This is an old revision of the document!
Detector de gaz
Introducere
Acest proiect consta intr-un detector de gaz care declanseaza o alarma sonora si lumini de avertizare.
Este un detector realizat pentru spatii rezidentiale.
Dispozitivul detecteaza nivelul de gaz din incapere cu ajutorul unui senzor MQ-6 si alerteaza utilizatorul prin alarma sonora si LED-ul rosu.
LED-ul verde marcheaza un nivel de gaz sub limita.
Ventilatorul este util pentru a crea flux de aer in camera, cu scopul de a evacua gazul din incapere.
Pe display se va afisa un warning de evacuare si nivelul de gaz citit de senzor.
Descriere generală
Senzorul detecteaza nivelul de gaz din aer si il transmite catre Arduino
La detectia unui nivel ridicat de gaz, pornesc atat buzzer-ul si LED-urile pentru a avertiza utilizatorul, cat si ventilatorul pentru a ventila camera si a crea flux de aer.
Display-ul afiseaza nivelul citit de senzor si un mesaj de avertizare in caz de pericol.
Hardware Design
Componenta | Numar bucati | Documentatie |
Arduino ATmega328P | 1 | Datasheet ATmega328P |
Senzor de gaz MQ-6 | 1 | - |
Buzzer Pasiv 5V | 1 | - |
LED-uri | 2 | - |
Rezistori 220ohm | 2 | - |
Ventilator | 1 | - |
Dioda | 1 | - |
MOSFET N | 1 | - |
Software Design
Codul este dezvoltat pentru microcontrollerul ATmega328P (Arduino Uno R3), iar pentru compilare si upload a fost folosit Arduino IDE.
AVR standard libraries
avr/io.h - pentru acces la registrii I/O ai microcontrollerului
avr/interrupt.h - suport pentru intreruperi
util/delay.h - pentru intarzieri
3rd-party libraries
Algoritmi si structuri implementate
Timer0 configurat in mod CTC pentru a genera intreruperi la intervale de 1ms (pentru a controla clipirea ledului si durata starii de pericol)
Timer2 configurat in mod CTC pentru controlul buzzer-ului
ADC pentru citirea valorilor senzorului
Functii implementate
setup_gpio(), setup_adc(), setup_timer0(), setup_timer2() pentru configurarile initiale ale pinilor pentru leduri, ventilator, buzzer si senzorul de gaz, configurarea ADC-ului si a timerelor
read_adc() pentru citirea valorii de la senzor
set_buzzer_freq() pentru setarea frecventei buzzerului
stop_buzzer() pentru oprirea buzzerului
show_message() pentru afisarea mesajului pe display
rutine de intrerupere pentru timer0 si timer2
Rezultate Obţinute
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
03.05.2025 - alegere tema proiect
07.05.2025 - comanda componente
09.05.2025 - testare componente
11.05.2025 - implementare hardware initiala pe breadboard
14.05.2025 - comanda componente suplimentare
16.05.2025 - implementare hardware finala (lipire componente)
19.05.2025 - implementare software v1.0
23.05.2025 - implementare software v1.1
26.05.2025 - implementare software v2.0
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF