Alarma de foc - Lucan Stefan

Introducere

Scopul proiectului este realizarea unei alarme de foc (detecteaza focul folosind senzorii de lumina si temperatura - include un senzor de miscare pentru a depista si posibili hoti). Alarma va functiona pasiv, dar se va putea deactiva dintr-un buton(pentru o perioada de timp) sau se va putea stinge dintr-un alt buton cand face galagie.

Placuta va contine un display pentru a se putea sti cand alarma este setata sau nu. Cand alarma suna, ledurile si speakerul se vor activa pentru a atrage atentia

Schema Bloc

Realizata in www.draw.io

Lista de componente

Pentru a completa proiectul se folosesc:

  • Plusivo Uno
  • senzor de gaze MQ-2
  • senzor de temperatura - termorezistor
  • 2 LED - uri
  • 1 pushbutton
  • 1 passive buzzer
  • 1 4bit RoHS LCD

Schema electrica

Distributia pinilor:
  1. PC1 : -termorezistor
  2. VCC : VCC-ul LCD-ului, +termorezistor
  3. PB3 : butonul
  4. PC4, PC5 : pinii SDA si SCL ai LCD-ului
  5. AVCC, primul GND si PC0 : pinii corespunzatori ai senzorului MQ2
  6. PD7 : LED_verde
  7. PB0 : LED_rosu
  8. PB1 : Buzzer
  9. GND : -LED-uri, -buton, -buzzer

Mod de functionare

Circuitul are 2 moduri de functionare, schimbate printr-o intrerupere trimisa de apasarea butonului. In ambele moduri cei doi senzori (MQ2 si termorezistor) citesc valorile din mediu prin ADC, valori afisate pe LCD prin I2C.

Cand LED-ul rosu clipeste (folosind timere), buzzer-ul este dezactivat. Cand LED-ul verde clipeste, alarma este armata, aceasta sunand cand temperatura sau nivelul gazelor citit depaseste threshold-urile setate.

Proiectul in functiune

Software

Proiectul a fost realizat in Visual Studio Code, pe PlatformIO.
Au fost folosite bibliotecile: twi.h(I2C), avr (lucrul cu registrii)

Descrierea functiilor

  • ISR(TIMER1_COMPA) : aprindem folosind compare-match unul dintre cele 2 LED-URI
  • ISR(INT0_vect) : intrerupere pentru a schimba modul de functionare (butonul)
  • ISR(TIMER0_OVF) : incrementarea timer-ului
  • setupADC, readADC, readTemp : functii de ADC, din laborator
  • buzzerTone : aprinde si stinge PB3 pentru a control output-ul buzzer-ului
  • LCD / I2C - library

Protocoale din laborator

  • Timer : pentru a aprinde si stinge LED-urile
  • Intreruperi : pentru a schimba modul de functionare a sistemului
  • ADC : pentru senzorii de temperatura si gaz
  • I2C : comunicare cu LCD-ul

Download

pm/prj2025/vstoica/stefan.lucan.txt · Last modified: 2025/05/30 06:58 by stefan.lucan
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