Урок 11.1: Датчик Пламени без модуля

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

Использовать голый инфракрасный приёмник пламени (без печатной платы-модуля) для обнаружения огня и подать сигнал тревоги с помощью светодиода и зуммера.

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

Кол-во

Деталь

1

Плата Arduino UNO

1

ИК-датчик пламени (приёмный триод)

1

Активный зуммер

1

Резистор 10 kΩ (делитель датчика)

1

Красный светодиод 5 мм + резистор 220 Ω

6

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

1

USB-кабель A-B

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

Дискретный датчик пламени

ИК-приёмник реагирует на излучение ~760–1100 нм, характерное для открытого пламени. У элемента два вывода: короткий — GND, длинный — сигнал.

Чтобы получить напряжение, пригодное для analogRead(), формируем делитель: датчик + резистор 10 kΩ между 5 V и GND. Выход снимаем с узла делителя и ведём на A0.

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

Подключение дискретного датчика пламени к Arduino
  • Короткий вывод датчика → 5 V

  • Длинный вывод → через 10 kΩ к GND и одновременно → A0

  • Светодиод (через 220 Ω) → пин 7

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

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

Код идентичен варианту с модулем, оставляем без изменений.

flame_sensor_raw.ino
////////////////////////////////////////////////////////////////
//fire sensor
int sensorPin = A0; // выбрать аналоговый контакт 0 для датчика
int sensorValue = 0;  // инициализация переменной
int led = 7; // выбрать цифровой контакт 9 для LED
int buzzer = 9; // выбрать цифровой контакт 12 для зуммера
void setup() {
  // declare the ledPin and buzzer as an OUTPUT:
  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);
  }
  digitalWrite(led, LOW);
  digitalWrite(buzzer, LOW);
  delay(1000);
}
////////////////////////////////////////////////////////////////

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

  • Делитель «датчик + 10 kΩ» формирует напряжение 0–≈1 В.

  • analogRead(A0) возвращает 0–1023; при пламени значение падает ниже ~100.

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

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

  1. Соберите схему согласно рисунку.

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

  3. Поднесите огонь — увидите значение < 100 и сработает тревога.

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

Симптом

Причина

Решение

Всегда тревога

Слишком низкий порог / яркий ИК-фон

Поднимите порог, экранируйте датчик от ламп накаливания

Не реагирует

Датчик подключён наоборот или далеко от пламени

Проверьте полярность (короткий вывод к 5 V) и поднесите ближе

Зуммер пищит, но светодиод не горит

Перепутаны пины / резистор 220 Ω слишком большой

Проверьте подключение и номинал резистора

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

  • Измените код, чтобы выводить силу пламени (map(sensorValue, 0, 1023, 0, 100)).