Blog

Flame Sensor Module – Complete Guide

Flame Sensor Module

Flame Sensor Module

Infrared Flame & Fire Detection up to 100cm

Open flames emit a distinctive spike of infrared radiation in roughly the 760-1100 nanometer band that ordinary ambient light sources don't produce in the same concentrated way, and this flame sensor module is built around a photodiode tuned to be sensitive in that band. When flame-band IR strikes the sensor, its output current changes measurably, which an onboard comparator circuit converts into a clean threshold-triggered digital output. Because it's fundamentally responding to a specific wavelength band of light rather than heat directly, it can detect a flame at a real physical distance well before heat itself would reach a nearby temperature sensor, which is exactly the early-warning advantage that makes flame sensors popular for hobbyist fire-alarm and safety-monitoring projects.

760–1100nm (IR band)
Detects
Digital
Output
Up to 100cm
Range

Key features

Fast Flame Detection

Responds to flame-band infrared faster than a heat sensor would react to rising temperature.

Simple Digital Output

A clean threshold-triggered HIGH/LOW signal, easy to read on any GPIO pin.

Adjustable Sensitivity

An onboard potentiometer sets the detection trigger threshold.

Wide Detection Angle

Roughly 60° cone, useful for room-level rather than pinpoint monitoring.

Simple 3-Pin Interface

Just power and one digital signal pin, minimal wiring.

Low-Cost Early-Warning Sensor

An inexpensive addition to DIY fire-safety and monitoring projects.

Technical specifications

Supply Voltage 3.3V – 5V
Detection Wavelength ~760nm – 1100nm (IR band)
Detection Range Up to ~100cm (flame-size dependent)
Detection Angle ~60°
Output Digital only (threshold-triggered HIGH/LOW)
Digital Threshold Adjustable via onboard potentiometer
Operating Current ~15mA
Response Time Fast (sub-second)
Package 3-pin module with onboard LM393 comparator

Pinout

PinFunction
VCC Power supply
GND Ground
DO Digital output, threshold-triggered

Applications

DIY fire/flame alarm projects Candle or campfire detection games and props Industrial flame-presence monitoring prototypes Kitchen safety monitoring projects Robotics flame-following/extinguishing competitions Greenhouse or furnace flame-out detection

What's in the box

1x flame sensor module (3-pin, digital output)

Downloads

Datasheet (PDF) Arduino Flame-Alarm Example Sketch
🔌
Pin Connections
1 Table
Pin Connections Table 1
BoardSensor PinConnection
Flame SensorVCC/GND/DOUT3.3-5V / GND / board digital pin
📟
Flame Sensor Module 3Pin
7 Examples • C/C++ | Boards: Arduino Uno, Arduino Nano, Arduino Mega, ESP32, ESP8266, STM32, Raspberry Pi Pico
Flame Sensor Module 3Pin - Arduino Uno
Flame Sensor Module 3Pin - Arduino Nano
Flame Sensor Module 3Pin - Arduino Mega
Flame Sensor Module 3Pin - ESP32
Flame Sensor Module 3Pin - ESP8266
Flame Sensor Module 3Pin - STM32
Flame Sensor Module 3Pin - Raspberry Pi Pico
📄 File: flame_sensor_module_3pin_-_arduino_uno.inoArduino Uno
550 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin 2 on Arduino Uno. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN 2
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_arduino_nano.inoArduino Nano
551 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin 2 on Arduino Nano. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN 2
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_arduino_mega.inoArduino Mega
551 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin 2 on Arduino Mega. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN 2
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_esp32.inoESP32
546 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin 15 on ESP32. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN 15
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_esp8266.inoESP8266
548 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin D5 on ESP8266. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN D5
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_stm32.inoSTM32
548 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin PB0 on STM32. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN PB0
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
📄 File: flame_sensor_module_3pin_-_raspberry_pi_pico.inoRaspberry Pi Pico
558 characters
1//ekostra.com
2//electronics store in egypt
3//+201008896258
4
5// Digital pin 15 on Raspberry Pi Pico. This module has an onboard comparator (potentiometer sets sensitivity), so it outputs a clean digital HIGH/LOW - no ADC math needed.
6#define FLAME_PIN 15
7
8void setup() {
9 Serial.begin(115200);
10 pinMode(FLAME_PIN, INPUT);
11}
12
13void loop() {
14 int flameDetected = digitalRead(FLAME_PIN); // most modules: LOW = flame detected
15 if (flameDetected == LOW) {
16 Serial.println("FLAME DETECTED!");
17 } else {
18 Serial.println("No flame.");
19 }
20 delay(300);
21}
IR-based flame detector with onboard comparator - digital output, sensitivity set by an onboard potentiometer.
Important: this is a hobbyist educational sensor, not a certified fire-safety device, and should never replace a real smoke or fire alarm in a home or workplace. Direct sunlight contains enough IR in the sensor's detection band to sometimes cause false triggers outdoors or near sunny windows, so test and tune the sensitivity potentiometer in the sensor's actual intended environment. And detection range depends heavily on flame size - a small candle is reliably detected only at much shorter range than the rated maximum, which really applies to larger flames.