На этом уроке мы разберем подключение к Ардуино Уно весьма нестандартного датчика, который призван помочь нам в обнаружении открытого пламени!
Конечно, пламя можно обнаружить, например, с помощью термодатчика. Ведь все что горит, часто нагревается до огромной температуры. Но у этого варианта есть два отрицательных момента. Во-первых, термодатчик может пострадать, если его подносить очень близко к огню. Да и не очень удобно это — тыкаться во все датчиком. А во-вторых, термодатчик не сможет зафиксировать именно пламя! То есть детектирование будет опосредованным, что не всегда приемлемо.
Другой вариант — использовать тепловизор на основе микроболометров. Такие устройства позволяют в реальном времени строить температурную карту всех видимых поверхностей. Но тепловизор слишком дорогой для хобби-проектов, и пламя он опять-таки детектирует не напрямую.
Применение
Датчик огня используется в роботах-пожарных. Для этих роботов устраиваются целые соревнования, задача участников в которых заключается в поиске и тушении огонька в лабиринте.
Именно наш датчик огня позволит в будущем создать простого и эффективного робота-пожарного для подобных соревнований.
Инфракрасный датчик огня улавливает излучение в диапазоне 760 — 1100 нм, свойственное пламени свечи, например. На практике, такой датчик реагирует не только на пламя, но и на солнце, и даже на комнатные лампы. Чтобы избежать паразитной засветки, фотодиод необходимо закрывать с боковых сторон непрозрачным материалом. Для лучшей фильтрации посторонних источников света, при детектировании пламени таким датчиком, применяют алгоритм детектирования низкой частоты. Это возможно благодаря тому, что пламя свечи меняет свою интенсивность с частотой 15-20 Гц.
Список необходимых компонентов
Для выполнения простого примера с инфракрасным датчиком огня, потребуется Ардуино-совместимый контроллер, зуммер и немного проводов вилка-розетка. Необходимые компоненты можно добавить в корзину прямо здесь, и затем оформить заказ в нашем интернет-магазине.
Подключение
У цифрового датчика пламени, который мы подключаем, есть всего три вывода:
- Vcc — питание +5В;
- Gnd — земля;
- Out — сигнал.
Vcc и Gnd датчика подключаем к соответствующим выводам Ардуино Уно, а Out бросаем на любую свободную ногу. В нашем случае, соединяем Out c цифровым входом №2. Принципиальная схема подключения выглядит следующим образом.
Внешний вид макета
Теперь, когда датчик подключен, можно смело писать программу!
Программа
Использованный нами датчик пламени, имеет инвертированный выход, а значит, он будет возвращать ложь, если в пределах его видимости есть пламя, и истину — в отсутствии пламени. Напишем простую программу, которая будет включать зуммер, если датчик увидел перед собой огонь.
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 сантиметрах от датчика, и начинаем крутить потенциометр, пока зуммер не запищит.
Если правильно собрать схему, залить программу, и настроить чувствительность, получится примерно следующее.
До встречи, на следующем уроке!
Робот-пожарник должен кататься и разводить огонь, а тушить призваны пожарные. *зануда_мод_офф*
В точку! Исправили:)
A KAK PODKLYUCHAT DATCHIK I POPM -NASOS NA ARDUINOM
Спасибо! Почти то, что я ищу. Подскажите, а если необходимо наоборот, сигнализировать отсутствие пламени? Как это сделать? Спасибо!
Исправить программный код.
Вопрос к очень умному Маргарику. И не только. Не могли бы вы для дураков выложить готовый код?
Собственно здравствуйте, а допустим мне на выходе нужно получить дискрет (т.е. что-бы определенное реле замкнуло при появлении пламени, и держало его пока оно не пропадет) возможно такое сделать? И допускается ли использовать вместо Arduino UNO — NANO, занимаемое место критично. Спасибо заранее.
По количеству выводов Nano идентично с Uno (за исключением пары дополнительных аналоговых входов у Nano), так что можно смело использовать. Насчет реле, то тут два варианта. Первый — просто подключить датчик напрямую к реле. Второй — использовать программу из урока. Только подключить не зуммер, а реле к ноге №11.
На счет зуммера тоже думал что можно так сделать, откровенно говоря казалось что это топорно будет выглядеть). Про подключение датчика напрямую к реле вы имели в виду последовательно после датчика управляющую обмотку включить? Чтобы при открытии фото-датчика через обмотку реле начал протекать ток, и оно сработало?
Почти так. Напрямую выход датчика к катушке реле подключать не стоит. Обычно в промежутке ставят транзистор в режиме ключа, так как катушке нужно достаточно много тока. Плюс, дополнительно можно сделать опторазвязку. Вообще, на стандартных модулях реле (которые на плате) уже есть и транзистор и оптопара.
Здравствуйте. А как подключить еще датчик газа? Можно Скетч.
Как сделать наведение водяной струи на огонь с помощью датчиков?
Так просто крутите серво мотор в разные стороны, постоянно проверяя значение на датчике. Как только датчик дает сигнал — прекращаем крутить серву и включаем насос.
Здравствуйте. Мне тоже нужен датчик на отсутствие пламени (для контроля за газовым котлом). Нет ли у вас уже готового решения? Писать программы и программировать я не умею.