Подключение датчика огня к Arduino Uno

В этой статье мы рассмотрим подключение датчика огня (Flame Sensor) к плате Arduino Uno и создание на его основе системы пожарной сигнализации. Датчик огня имеет в своем составе фотодиод для обнаружения света (огня) и операционный усилитель для управления его чувствительностью. Он используется для обнаружения огня (пламени) и при его обнаружении он формирует на своем выходе сигнал высокого уровня (HIGH). Этот сигнал считывается платой Arduino, которая выдает сигнал тревоги на зуммер и светодиод.

Внешний вид подключения датчика огня к Arduino Uno

Применение датчика огня на нашем сайте мы также рассматривали в составе робота для борьбы с огнем.

Датчик огня

Датчик огня представляет собой устройство, предназначенное для обнаружения огня или пламени. При обнаружении огня затем могут выполняться различные действия: включение звуковой сигнализации, деактивация линии с топливом, включение системы тушения огня и т.д.

Внешний вид датчика огня

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

Во время горения огня выделяется небольшое количество инфракрасного света, который может быть принят (обнаружен) с помощью фотодиода (инфракрасного приемника). Затем мы будем использовать операционный усилитель чтобы проверить изменения напряжения на выходе инфракрасного приемника (IR receiver). При обнаружении огня на выходном контакте датчика (DO) будет формироваться напряжение низкого уровня (0V), а при отсутствии огня на его выходном контакте будет напряжение высокого уровня (5V).

В этом проекте мы использовали инфракрасный датчик огня. В нем используется датчик YG1006, который имеет в своем составе высокоскоростной и высокочувствительный NPN кремниевый фототранзистор. Он может обнаруживать инфракрасный свет с длиной волны от 700 до 1000 нм, а его угол обнаружения приблизительно составляет 60°. Модуль датчика огня состоит из фотодиода (инфракрасного приемника), резистора, конденсатора, потенциометра и компаратора LM393 в виде одной интегральной схемы. Чувствительность регулируется имеющимся на плате потенциометром. Рабочее напряжение составляет от 3.3v до 5v DC (постоянного тока), с цифровым выходом.

Назначение контактов датчика огня приведено в следующей таблице.

Контакт Описание
Vcc питающее напряжение 3.3 – 5V
GND земля
Dout цифровой выход

Возможные применения датчика огня:

  • водородные станции;
  • нефтепроводы и газопроводы;
  • самоходное оборудование;
  • оборудование в ядерной энергетике;
  • ангары для самолетов;
  • помещения для турбин.

Необходимые компоненты

  1. Плата Arduino Uno (или любая другая версия платы Arduino).
  2. Датчик огня (Flame sensor).
  3. Светодиод.
  4. Зуммер (Buzzer).
  5. Резистор.
  6. Соединительные провода.

Работа схемы

Схема подключения датчика огня к плате Arduino Uno представлена на следующем рисунке.

Схема подключения датчика огня к плате Arduino Uno

Плата Arduino Uno

Arduino Uno представляет собой плату с открытым исходным кодом, построенную на основу микроконтроллера ATmega328p. Она имеет 14 цифровых контактов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых контактов, регуляторы напряжения и другие элементы. Arduino Uno имеет 32 кБ флэш памяти, 2 кБ SRAM (статическое ОЗУ) и 1 кБ EEPROM (энергонезависимая память). Плата работает на тактовой частоте 16 МГц. Arduino Uno обеспечивает связь по последовательного каналу связи, а также поддерживает протоколы связи I2C и SPI. В следующей таблице представлены технические характеристики платы Arduino Uno.

Микроконтроллер ATmega328p
Рабочее напряжение 5 В
Входное напряжение 7-12V (рекомендовано)
Количество цифровых контактов ввода/вывода 14
Количество аналоговых контактов 6
Flash memory (память программ) 32 Кб
SRAM (оперативная память) 2 Кб
EEPROM (энергонезависимая память) 1 Кб
Рабочая частота микроконтроллера 16 МГц

Датчик огня (пламени) обнаруживает присутствие огня или пламени основываясь на инфракрасных волнах, испускаемых пламенем. Если огонь обнаруживается, то на его выходе формируется логическая 1, иначе на выходе присутствует логический 0. Плата Arduino Uno проверяет логический уровень на выходе датчика огня и в зависимости от его состояния выполняет различные задачи: включение зуммера и светодиода, передача сообщений тревоги и т.д.

Внешний вид собранной конструкции на макетной плате показан на следующем рисунке.

Внешний вид собранной конструкции с датчиком огня на макетной плате

Объяснение кода программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы обсудим его наиболее важные фрагменты.

Вначале программы нам необходимо инициализировать контакты Arduino, к которым подключены датчик огня, светодиод и зуммер. Датчик огня подключен к контакту 4 платы Arduino, зуммер – к контакту 8, а светодиод – к контакту 7.

Переменная “flame_detected” используется для хранения цифрового значения, считываемого с выхода датчика огня, в зависимости от ее значения мы будем принимать решение есть огонь или нет.

Далее нам необходимо установить режимы работы используемых контактов и инициализировать последовательный порт связи.

Следующая команда считывает значение с цифрового выхода датчика огня и сохраняет его в переменной “flame_detected”.

Далее в программе мы сравниваем значение переменной “flame_detected” с 0 и 1.

Если ее значение равно 1 – это сигнализирует о том, что был обнаружен огонь. Поэтому мы должны включить зуммер и светодиод, а также передать сигнал тревоги в окно монитора последовательной связи (Serial monitor) среды Arduino IDE.

Если ее значение равно 0 – это сигнализирует о том, что огонь не был обнаружен, поэтому мы должны выключить зуммер и светодиод. Все эти процессы повторяются каждую секунду.

Исходный код программы (скетча)

Если у вас возникнут вопросы по приведенному коду программы, вы можете задать их в комментариях к данной статье.

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
28 просмотров


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

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