Código y vídeo de Arduino: Módulo sensor de llama para Arduino
En este tutorial, exploraremos cómo usar un módulo sensor de llama con un Arduino. El sensor de llama detecta la presencia de una llama y puede activar una alarma o un indicador cuando lo hace. Al final de este proyecto, tendrás un sistema funcional que responde a la detección de llamas con una alerta audible y retroalimentación visual.


El módulo sensor de llama funciona usando un LED infrarrojo para detectar llamas. Cuando se detecta una llama, el módulo emite una señal que puede usarse para activar otros componentes, como un zumbador o un LED. Este proyecto implicará conectar el sensor de llama al Arduino y escribir un programa sencillo para manejar la entrada y la salida.
Para una comprensión más clara del código y el cableado, le recomiendo ver el vídeo asociado (en el vídeo a las 00:00).
Hardware explicado
Los componentes principales de este proyecto incluyen el módulo sensor de llama, una placa Arduino y un zumbador o un LED para alertar. El sensor de llama tiene cuatro pines: un pin de salida digital (DO), un pin de salida analógica (AO), un pin de alimentación (VCC) y un pin de tierra (GND). El pin de salida digital envía una señal HIGH cuando se detecta una llama, mientras que la salida analógica proporciona valores variables según la intensidad de la llama.
El Arduino lee la salida digital para determinar si hay una llama presente. Cuando el sensor detecta una llama, el Arduino puede entonces activar una alarma o una luz usando un pin de salida. La sensibilidad de la detección de llamas se puede ajustar mediante un potenciómetro integrado en el módulo.
Detalles de la ficha técnica
| Fabricante | Genérico |
|---|---|
| Número de pieza | LM393 |
| Tensión lógica/E/S | 5 V |
| Tensión de alimentación | 2-36 V |
| Corriente de salida (por canal) | 20 mA |
| Corriente de pico (por canal) | 50 mA |
| Guía de frecuencia PWM | No aplica |
| Umbrales lógicos de entrada | 0.8 V (bajo), 2.0 V (alto) |
| Caída de tensión / RDS(on)/ saturación | 0.2 V |
| Límites térmicos | 125 °C |
| Paquete | TO-220 |
| Notas / variantes | Sensibilidad ajustable |
- Asegúrese de que el módulo reciba un suministro de voltaje adecuado entre 2 y 36 V.
- Mantenga el LED infrarrojo del sensor libre de obstrucciones para una detección óptima de llamas.
- Use un disipador de calor si el módulo opera cerca de sus límites de corriente pico.
- Tenga cuidado con el cableado para evitar cortocircuitos o conexiones incorrectas.
- Ajuste la sensibilidad usando el potenciómetro integrado para diferentes aplicaciones.
- Compruebe que la salida de alarma pueda manejar la carga conectada (zumbador/LED).
Instrucciones de cableado


Para cablear el módulo del sensor de llama al Arduino, comienza conectando el pin VCC del sensor de llama al pin 5V del Arduino. Luego, conecta el pin GND del sensor a uno de los pines GND del Arduino. El pin de salida digital (DO) del sensor de llama debe conectarse al pin digital 2 del Arduino, al que nos referiremos comoFLAMEen el código. Finalmente, conecta un dispositivo de alarma, como un zumbador, al pin digital 8 del Arduino, denominadoALARM.
Asegúrate de que todas las conexiones estén seguras, ya que las conexiones sueltas pueden provocar un comportamiento inconsistente. Si quieres usar la salida analógica, conecta el pin de salida analógica (AO) a un pin analógico del Arduino, como A0, pero esto es opcional para la funcionalidad básica. En el video, también se discuten métodos alternativos de cableado (en el video a 02:30).
Ejemplos de código y guía paso a paso
El siguiente fragmento de código inicializa el sensor de llamas y configura el monitor serial:
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // define FLAME input pin
pinMode(ALARM, OUTPUT); // define ALARM output pin
}Aquí, definimos los pines para el sensor de llama y la alarma, e inicializamos la comunicación serie a 9600 baudios. Esto nos permite imprimir mensajes en el monitor serie para depuración.
A continuación, leemos el sensor de llama en el bucle principal:
void loop() {
int fire = digitalRead(FLAME); // read FLAME sensor
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // set the buzzer ON
Serial.println("Fire! Fire!");
} else {
digitalWrite(ALARM, LOW); // Set the buzzer OFF
Serial.println("Peace");
}
delay(200);
}Esta parte del código comprueba el estado del sensor de llama. Si detecta una llama (HIGH), activa la alarma e imprime ¡Fuego! ¡Fuego! en el monitor serie. Si no hay llama (LOW), apaga la alarma e imprime Paz. El bucle incluye una demora de 200 milisegundos, que se puede ajustar para cambiar la sensibilidad de la detección.
Demostración / Qué esperar
Cuando el sistema se enciende, el monitor serial mostrará Prueba del módulo contra incendios de Robojax.com seguido de Paz hasta que se detecte una llama. Una vez detectada la llama, el zumbador sonará y el LED se encenderá, indicando una condición de incendio. Puedes probar la sensibilidad del sensor ajustando el potenciómetro del módulo. Ten cuidado con los falsos positivos, como los causados por señales infrarrojas de los mandos a distancia (en el video a 04:15).
Marcas de tiempo del vídeo
- 00:00- Introducción al módulo sensor de llama
- 02:30- Instrucciones de cableado
- 04:15- Demostración de detección de llamas
/*
* This is code for a Flame Sensor module for Arduino.
* Watch the video https://youtu.be/OZkZIP3KlHQ
* Other Arduino libraries and videos https://robojax.com
* *
Flame Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on January 18, 2018 at 22:21 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*
*/
/*
What does it do?
When the infrared diode sees the flame, it sends the digital output DO to
also, the level of flame is represented with the analog output.
*/
// 4 Infrared Obstacle code for Robojax.com
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT);//define FLAME input pin
pinMode(ALARM, OUTPUT);//define ALARM output pin
// Flame sensor code for Robojax.com
}
void loop() {
// Flame sensor code for Robojax.com
int fire = digitalRead(FLAME);// read FLAME sensor
if( fire == HIGH)
{
digitalWrite(ALARM,HIGH);// set the buzzer ON
Serial.println("Fire! Fire!");
}else{
digitalWrite(ALARM,LOW); // Set the buzzer OFF
Serial.println("Peace");
// Flame sensor code for Robojax.com
}
delay(200);
}
Recursos y referencias
-
ExternoHoja de datos LM393 (PDF)ti.com
Archivos📁
No hay archivos disponibles.