Урок 11.2: Датчик Пламени с модулем

1. Цель эксперимента

Использовать датчик пламени для обнаружения огня и реализовать простую сигнализацию: при наличии пламени загорается светодиод и включается зуммер.

2. Компоненты

Кол-во

Деталь

1

Плата Arduino UNO

1

Датчик пламени (ИК-приёмник на плате)

1

Активный зуммер (модуль или пьезо)

1

Красный светодиод 5 мм

6

Перемычки «папа–папа»

1

USB-кабель A-B

3. Немного знаний

Модуль датчика пламени

Модуль содержит инфракрасный приёмник, чувствительный к длинам волн, испускаемым пламенем. Выход даёт аналоговый уровень: чем выше напряжение — тем ярче/ближе огонь.

  • Без пламени ~0,3 В (значение ADC ≈ 60).

  • Пламя на расстоянии 10 см — ~1 В (ADC ≈ 200).

  • Ближе → напряжение растёт.

4. Схема подключения

Схема подключения датчика пламени к Arduino
  • AO модуля → A0 Arduino

  • VCC5 V

  • GNDGND

  • Светодиод + резистор → пин 7

  • Зуммер → пин 9

5. Пример кода

Код из методички — без изменений, комментарии добавлены для понимания.

flame_sensor_module.ino
//fire sensor

int sensorPin = A0;    // выбрать аналоговый контакт 0 для датчика
int sensorValue = 0;   // инициализация переменной
int led = 7;           // выбрать цифровой контакт 7 для LED
int buzzer = 9;        // выбрать цифровой контакт 9 для зуммера

void setup() {
  pinMode(led, OUTPUT);      // делаем пин светодиода выходом
  pinMode(buzzer, OUTPUT);   // пин зуммера — выход
  Serial.begin(9600);
}

void loop() {
  Serial.println("Welcome to Alash electronics Flame Sensor example");

  sensorValue = analogRead(sensorPin); // читаем датчик
  Serial.println(sensorValue);         // выводим в порт

  if (sensorValue < 100) {             // чем меньше значение, тем сильнее пламя
    Serial.println("Fire Detected");
    Serial.println("LED on");
    digitalWrite(led, HIGH);           // включаем светодиод
    digitalWrite(buzzer, HIGH);        // и зуммер
    delay(1000);                       // ждём 1 с
  }

  digitalWrite(led, LOW);              // выключаем всё
  digitalWrite(buzzer, LOW);
  delay(1000);
}

6. Как работает код

  • Аналоговый вход A0 выдаёт значения 0–1023. При ярком пламени числа падают (< 100).

  • Условие if (sensorValue < 100) трактует такие значения как «огонь обнаружен».

  • При срабатывании на секунду включаются светодиод и зуммер.

7. Пошаговый запуск

  1. Подключите модуль и исполнительные устройства по схеме выше.

  2. Загрузите скетч и откройте Serial Monitor.

  3. Поднесите к датчику зажигалку/спичку — в порте появится «Fire Detected», загорится светодиод и прозвучит зуммер.

8. Что может пойти не так

Симптом

Причина

Решение

Срабатывает без огня

В помещении много ИК-источников (лампы накаливания, солнце)

Поднимите порог в if (например, < 80)

Не реагирует на пламя

Датчик подключён к DO вместо AO / пламя далеко

Используйте аналоговый выход или поднесите огонь ближе

Зуммер тихий

Заменили активный зуммер на пассивный

Либо используйте активный, либо генерируйте tone() для пассивного

9. Эксперименты

  • Выведите уровень пламени на экран OLED / LCD.