O sensor de chama deteta radiação infravermelha na gama espectral de 760–1100 nm — a frequência característica das chamas. Tem saída digital (limiar ajustável) e analógica (intensidade contínua). O potenciómetro na PCB ajusta a sensibilidade da saída digital.
#define CHAMA_D 3 // Saída digital DO
#define LED_PIN 13
#define BUZZER 8
void setup() {{
pinMode(CHAMA_D, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.begin(9600);
}}
void loop() {{
bool chama = (digitalRead(CHAMA_D) == LOW); // LOW = detectou
if (chama) {{
digitalWrite(LED_PIN, HIGH);
digitalWrite(BUZZER, HIGH);
Serial.println("⚠ CHAMA DETECTADA!");
delay(500);
digitalWrite(BUZZER, LOW);
delay(500);
}} else {{
digitalWrite(LED_PIN, LOW);
digitalWrite(BUZZER, LOW);
}}
}}#define CHAMA_A A0 // Saída analógica AO
#define LIMIAR 600 // Ajusta conforme o ambiente
void setup() {{ Serial.begin(9600); }}
void loop() {{
int ir = analogRead(CHAMA_A); // Maior valor = mais IR = mais chama
int pct = map(ir, 0, 1023, 0, 100);
Serial.print("IR: "); Serial.print(ir);
Serial.print(" Intensidade: "); Serial.print(pct); Serial.println("%");
if (ir > LIMIAR) {{
Serial.println("ALERTA: sinal IR elevado");
}}
delay(200);
}}#include <DHT.h>
#define CHAMA_D 3
#define CHAMA_A A0
#define DHT_PIN 2
#define LED_R 12 // LED vermelho — alarme
#define LED_G 11 // LED verde — sistema OK
#define BUZZER 8
#define TEMP_MAX 35.0
DHT dht(DHT_PIN, DHT11);
unsigned long ultimoAlerta = 0;
void setup() {{
pinMode(CHAMA_D, INPUT);
pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT);
pinMode(BUZZER, OUTPUT);
dht.begin(); Serial.begin(9600);
digitalWrite(LED_G, HIGH); // Sistema OK ao início
}}
void loop() {{
bool chama = (digitalRead(CHAMA_D) == LOW);
float temp = dht.readTemperature();
bool tempAlta = !isnan(temp) && temp > TEMP_MAX;
bool alerta = chama || tempAlta;
digitalWrite(LED_G, !alerta);
digitalWrite(LED_R, alerta);
if (alerta && (millis() - ultimoAlerta > 1000)) {{
digitalWrite(BUZZER, HIGH); delay(300); digitalWrite(BUZZER, LOW);
ultimoAlerta = millis();
Serial.print("ALARME:");
if (chama) Serial.print(" CHAMA");
if (tempAlta) Serial.print(" TEMP_ALTA");
Serial.println();
}}
delay(200);
}}