Ардуино: датчик огня

ardu_flameНа этом уроке мы разберем подключение к Ардуино Уно весьма нестандартного датчика, который призван помочь нам в обнаружении открытого пламени!

Конечно, пламя можно обнаружить, например, с помощью термодатчика. Ведь все что горит, часто нагревается до огромной температуры. Но у этого варианта есть два отрицательных момента. Во-первых, термодатчик может пострадать, если его подносить очень близко к огню. Да и не очень удобно это — тыкаться во все датчиком. А во-вторых, термодатчик не сможет зафиксировать именно пламя! То есть детектирование будет опосредованным, что не всегда приемлемо.

Другой вариант — использовать тепловизор на основе микроболометров. Такие устройства позволяют в реальном времени строить температурную карту всех видимых поверхностей. Но тепловизор слишком дорогой для хобби-проектов, и пламя он опять-таки детектирует не напрямую.

1. Применение

Robot_CandleДатчик огня используется в роботах-пожарных. Для этих роботов устраиваются целые соревнования, задача участников в которых заключается в поиске и тушении огонька в лабиринте.

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

Инфракрасный датчик огня улавливает излучение в диапазоне 760 — 1100 нм, свойственное пламени свечи, например. На практике, такой датчик реагирует не только на пламя, но и на солнце, и даже на комнатные лампы. Чтобы избежать паразитной засветки, фотодиод необходимо закрывать с боковых сторон непрозрачным материалом. Для лучшей фильтрации посторонних источников света, при детектировании пламени таким датчиком, применяют алгоритм детектирования низкой частоты. Это возможно благодаря тому, что пламя свечи меняет свою интенсивность с частотой 15-20 Гц.

2. Подключение

У цифрового датчика пламени, который мы подключаем, есть всего три вывода:

  • Vcc — питание +5В;
  • Gnd — земля;
  • Out — сигнал.

Vcc и Gnd датчика подключаем к соответствующим выводам Ардуино Уно, а Out бросаем на любую свободную ногу. В нашем случае, соединяем Out c цифровым входом №2. Принципиальная схема подключения выглядит следующим образом.

flame_схема

Внешний вид макета

flame_bb

Теперь, когда датчик подключен, можно смело писать программу!

3. Программа

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

int flamePin = 2;
int buzzPin = 11;

void setup() {
  pinMode( flamePin, INPUT );
  pinMode( buzzPin, OUTPUT );
}

void loop() {
  if( !digitalRead( flamePin ) )
    digitalWrite( buzzPin, HIGH );
  else
    digitalWrite( buzzPin, LOW );
}

Записываем программу на Ардуино Уно, достаем зажигалку с крестовой отверткой, и готовимся к последнему этапу — настройке чувствительности датчика.

Дело в том, что на плате датчика пламени есть подстроечный потенциометр, с помощью которого мы и будем настраивать порог чувствительности. Для этого, включаем Ардуино Уно в USB, чтобы запитать нашу схему, поджигаем огонь в 10 сантиметрах от датчика, и начинаем крутить потенциометр, пока зуммер не запищит.

Если правильно собрать схему, залить программу, и настроить чувствительность, получится примерно следующее.

До встречи, на следующем уроке!


Изменено:

Ардуино: датчик огня: 2 комментария

  1. Робот-пожарник должен кататься и разводить огонь, а тушить призваны пожарные. *зануда_мод_офф*

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

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