The KY-026 Flame Sensor module detects infrared light emitted by fire. This module has both digital and analog outputs and a potentiometer to adjust the sensitivity. Commonly used in fire detection systems.
Compatible with Arduino, Raspberry Pi, ESP32 and other microcontrollers.


KY-026 Specifications
This module consist of a 5mm infra-red receiver LED, a LM393 dual differential comparator, a 3296W trimmer potentiometer, 6 resistors,2 indicator LEDs and 4 male header pins. The board features an analog and a digital output.
Operating Voltage | 3.3V ~ 5.5V |
Infrared Wavelength Detection | 760nm ~ 1100nm |
Sensor Detection Angle | 60° |
Board Dimensions | 1.5cm x 3.6cm [0.6in x 1.4in] |
Connection Diagram
Connect the board’s analog output (A0) to pin A0 on the Arduino and the digital output (D0) to pin 3.
Connect the power line (+) and ground (G) to 5V and GND respectively.
KY-026 | Arduino |
---|---|
A0 | Pin A0 |
G | GND |
+ | +5V |
D0 | Pin 2 |

KY-026 Arduino Code
In this Arduino sketch we’ll read values from both digital and analog interfaces on the KY-026, use a lighter or a candle to interact with the flame detector module.
The digital interface will send a HIGH signal when fire is detected by the sensor, turning on the LED on the Arduino (pin 13). Turn the potentiometer clock-wise to increase the detection threshold and counter-clockwise to decrease it.
The analog interface with return a high numeric value when there’s no flame near and it’ll drop to near zero in the presence of fire.
int led = 13; // define the LED pin
int digitalPin = 2; // KY-026 digital interface
int analogPin = A0; // KY-026 analog interface
int digitalVal; // digital readings
int analogVal; //analog readings
void setup()
{
pinMode(led, OUTPUT);
pinMode(digitalPin, INPUT);
//pinMode(analogPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// Read the digital interface
digitalVal = digitalRead(digitalPin);
if(digitalVal == HIGH) // if flame is detected
{
digitalWrite(led, HIGH); // turn ON Arduino's LED
}
else
{
digitalWrite(led, LOW); // turn OFF Arduino's LED
}
// Read the analog interface
analogVal = analogRead(analogPin);
Serial.println(analogVal); // print analog value to serial
delay(100);
}
Use Tools > Serial Plotter on the Arduino IDE to visualize the values on the analog interface, in this example we used a lighter to create a small flame every couple of seconds. You can see the values decreasing as the flame gets closer to the sensor and then increasing when the flame moves away from the sensor.
