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ă

  1. Senzorul detecteaza nivelul de gaz din aer si il transmite catre Arduino
  2. 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.
  3. Display-ul afiseaza nivelul citit de senzor si un mesaj de avertizare in caz de pericol.

Hardware Design

Componenta Numar bucati
Arduino ATmega328P 1
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

  • Adafruit_GFX - library grafic de baza pentru diverse display-uri
  • Adafruit_SSD1306 library specific pentru controlul display-ului OLED SSD1306

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

Produsul final a fost integrat intr-o cutie, lasand la vedere doar detectorul de gaz, display-ul si cele 2 LED-uri.

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

  1. 03.05.2025 - alegere tema proiect
  2. 07.05.2025 - comanda componente
  3. 09.05.2025 - testare componente
  4. 11.05.2025 - implementare hardware initiala pe breadboard
  5. 14.05.2025 - comanda componente suplimentare
  6. 16.05.2025 - implementare hardware finala (lipire componente)
  7. 19.05.2025 - implementare software v1.0
  8. 23.05.2025 - implementare software v1.1
  9. 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

pm/prj2025/ccristi/victor.vaduva.1748367209.txt.gz · Last modified: 2025/05/27 20:33 by victor.vaduva
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