Error NOTICE: This website is scheduled to be down for maintenance on: 24 December 1pm until 4pm

Flame Sensor with Arduino Uno

Flame sensor with the Arduino

The following example uses the digital output from the sensor connected to pin D10 on the Uno. On detection of a flame in infrared spectrum the output from the sensor goes low and an alarm sounds. The alarm sound is from a piezo transducer connected between pins D8 & D9.

/* Detect a flame using IR flame sensor and sound an alarm.
*/

const int sounder_A = 8;  //sounder port definitions.
const int sounder_B = 9; 
const int sensor = 10; //flame sensor port.
bool flame = 1;     //variable to hold the sensor state. The sensor is active
                    //low, so initialised high.

void setup()
{
pinMode(sounder_A, OUTPUT); //connect the piezo across two ports
pinMode(sounder_B, OUTPUT); //to double the signal amplitude.
pinMode(sensor, INPUT); //initialise the flame sensor input.
}

// Call function with parameters - duration in mSecs, freq in Hz
void beep(long duration, int freq) {
    duration *= 1000;   //convert the duration to microseconds
    int period 1.0 / freq) * 1000000; //get the oscillation period in microseconds
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(sounder_A, HIGH); //Piezo ports go hi/lo then lo/hi
        digitalWrite(sounder_B, LOW);  //to generate the tone
        delayMicroseconds(period / 2);
        digitalWrite(sounder_A, LOW);
        digitalWrite(sounder_B, HIGH);
        delayMicroseconds(period / 2);
        elapsed_time +period);
    }
        digitalWrite(sounder_A, LOW);  //kill the output
        digitalWrite(sounder_B, LOW);
}
void loop()
{
    flame = digitalRead(sensor);
    if (!flame){
        for(int i=0; i<5; i++){
            beep(500, 4000);
            delay(500);
        }
    }
}
Your IP Address is: 216.73.216.157
Copyright © 2025 Bitsbox. Powered by Zen Cart