Модуль датчика пламени используется для обнаружения открытого пламени путем обнаружения света в инфракрасном спектре, излучаемого открытым пламенем. Диапазон длин волн в этом спектре может колебаться от 700 до 1100 нм. По внешнему виду модуль похож на обычный ИК-детектор, но с более широким диапазоном обнаружения и отсутствием светогенерирующего элемента (ИК-светодиода). Модуль датчика пламени имеет как аналоговый, так и цифровой выход. С помощью встроенного подстроечного резистора настраивается значение опорного напряжения на компараторе LM393. Если напряжение с фотодиода превысит его, то компаратор формирует сигнал высокого (5 В) логического уровня; в ином случае — сигнал низкого уровня (0 В).
На плате имеется 4 контакта для подключения. Модуль совместим с любыми программируемыми контроллерами. При обнаружении пламени выходное напряжение на аналоговом выходе A0 изменяется в зависимости от интенсивности обнаруженного ИК-излучения. Цифровой выход D0 принимает значение LOW в исходном состоянии. Когда ИК-излучение обнаруживается датчиком, на выходе устанавливается напряжение уровня HIGH и загорается светодиод LED2.
Данная плата интересна для экспериментов с обнаружением пламени. Её также можно использовать для контроля за состоянием пламени, чтобы определить, погасло оно или нет. Коммерческие системы обнаружения пожара также включают в себя модули обнаружения мерцания света, чтобы не допускать ложных срабатываний на датчике пламени.
Технические характеристики:
Входное напряжение: 3.3 / 5 В
Ток потребления: 7 мА
Длина волны: 700…1100 нм
Угол обзора: 60°
Размеры: 36 x 15 мм
Распиновка модуля:
Схема подключения:
Программный код:
Зажигается встроенный светодиод L при обнаружении пламени
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);
}