Как подключить датчик пламени к Ардуино

Подключение датчика пламени. Flame Sensor Arduino

Сенсор огня KY-026 для Arduino позволяет определить наличие открытого пламени. Рассмотрим его устройство датчика, как подключить flame sensor к Arduino Uno.

Датчик огня KY-026 (flame sensor Arduino) позволяет определить наличие открытого пламени с помощью инфракрасного приемника. На основе датчика можно создать пожарную сигнализацию в доме и много других полезных устройств. Рассмотрим устройство данного сенсора, как его правильно подключить к микроконтроллеру Arduino Uno и разберем работу модуля на примере двух простых программ.

Устройство датчика пламени для Ардуино

Производится flame sensor для Arduino в двух вариантах — с тремя или с четырьмя контактами, распиновка датчика пламени размещена на картинке ниже. Оба варианта имеют цифровой выход. На датчике включается индикатор, а на выходе появляется сигнал истина (логическая единица), если обнаружено пламя, и ложь (логический нуль) при отсутствии пламени в пределах видимости инфракрасного приемника.

Устройство цифрового и аналогового датчика пламени для Ардуино
Распиновка цифрового и аналогового датчика пламени Ардуино

Датчик огня с четырьмя ножками имеет дополнительно аналоговый выход, который сообщает не только о наличии сигнала, но и сообщает его характеристику. Таким образом, с помощью сенсора можно определять не только наличие открытого огня, но и его масштаб. ИК датчик реагирует излучение в диапазоне 750 — 1100 нм, на практике сенсор реагирует не только на огонь, но и на солнце или лампы накаливания.

Кроме ИК приемника на модуле размещен подстроечный резистор для калибровки чувствительности датчика и другие радиоэлементы с обозначением. Схема подключения датчика к плате Arduino размещена на картинке ниже. В примерах мы используем порт A1 в качестве цифрового и аналогового входа, в скетче можно изменить порт и использовать для обработки сигнала любой микроконтроллер.

Подключение датчика пламени к Ардуино

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • модуль датчика пламени;
  • беспаечная макетная плата;
  • светодиод и резистор;
  • провода «папа-мама», «папа-папа».
Схема подключения датчика пламени (flame sensor) к Arduino
Схема подключения датчика пламени (flame sensor) к Arduino

На плате датчика есть подписи у контактов для подключения к Arduino. Датчик питается от 5V и выдает цифровой или аналоговый сигнал, в зависимости от модификации. В примерах мы покажем, как подключить датчик огня к Ардуино, используя аналоговый и цифровой выход сенсора ky-026. Соберите схему, как на картинке и загрузите скетч (здесь ссылка для скачивания программ одним архивом).

Скетч для цифрового датчика пламени (KY-026)

#define  flamePin  A1 // задаем имя для порта A1
#define  ledPin  13     // задаем имя для порта 13

int  flame;

void setup() {
   Serial.begin(9600);
   pinMode(flamePin, INPUT);
   pinMode(ledPin, OUTPUT);
}

void loop() {

   flame = digitalRead(flamePin);  // считываем данные с датчика

   Serial.print("Flame Sensor - ");  // выводим данные на монитор
   Serial.println(flame);

   if (flame == HIGH)
      digitalWrite(ledPin, HIGH);
   else
      digitalWrite(ledPin, LOW);
}

Пояснения к коду:

  1. для приема цифрового сигнала с датчика KY-026 используется порт A1, который можно поменять в скетче на любой порт общего назначения;
  2. данный датчик имеет на цифровом выходе сигнал «логическая единица» при появлении открытого огня на расстоянии до 1 метра от ИК приемника.

Скетч для аналогового датчика пламени (KY-026)

#define  flamePin  A1 // задаем имя для порта A1
#define  ledPin  13     // задаем имя для порта 13

int  flame;

void setup() {
   Serial.begin(9600);
   pinMode(flamePin, INPUT);
   pinMode(ledPin, OUTPUT);
   analogWrite(flamePin, LOW);
}

void loop() {

   flame = analogRead(flamePin);  // считываем данные с датчика

   Serial.print("Flame Sensor - ");  // выводим данные на монитор
   Serial.println(flame);

   if (flame >= 100)
      digitalWrite(ledPin, HIGH);
   if (flame < 100)
      digitalWrite(ledPin, LOW);
}

Пояснения к коду:

  1. для приема сигнала используется аналоговый порт, который можно поменять;
  2. данные с датчика выводятся на мониторе порта Arduino IDE.
1 Star2 Stars3 Stars4 Stars5 Stars (23 votes, average: 4,83 out of 5)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *