Arduino код и видео: Модул за сензор за пламен за Arduino
Во ова упатство, ќе истражиме како да користиме модул за сензор за пламен со Arduino. Сензорот за пламен детектира присуство на пламен и може да активира аларм или индикатор кога ќе го открие. До крајот на овој проект, ќе имате функционален систем кој реагира на детекција на пламен со звучен аларм и визуелна повратна информација.


Модулот за сензор за пламен работи со користење на инфрацрвена LED за детекција на пламен. Кога ќе се детектира пламен, модулот испраќа сигнал кој може да се користи за активирање на други компоненти, како што се зумер или LED. Овој проект ќе вклучува поврзување на сензорот за пламен со Arduino и пишување едноставна програма за обработка на влезот и излезот.
За појасно разбирање на кодот и поврзувањето, ве охрабрувам да го проверите придружното видео (во видео на 00:00).
Објаснување на хардверот
Главните компоненти во овој проект вклучуваат модул за сензор за пламен, Arduino плоча и зумер или LED за алармирање. Сензорот за пламен има четири пина: дигитален излезен пин (DO), аналоген излезен пин (AO), пин за напојување (VCC) и пин за заземјување (GND). Дигиталниот излезен пин испраќа HIGH сигнал кога ќе се детектира пламен, додека аналогниот излез обезбедува променливи вредности врз основа на интензитетот на пламенот.
Arduino го чита дигиталниот излез за да утврди дали има пламен. Кога сензорот ќе детектира пламен, Arduino може да активира аларм или светлина користејќи излезен пин. Чувствителноста на детекцијата на пламен може да се прилагоди со помош на вграден потенциометар на модулот.
Детали од податочната табела
| Производител | Генерички |
|---|---|
| Број на дел | LM393 |
| Логички/IO напон | 5 V |
| Напон на напојување | 2–36 V |
| Излезна струја (по канал) | 20 mA |
| Врвна струја (по канал) | 50 mA |
| Насоки за PWM фреквенција | Н/П |
| Влезни логички прагови | 0,8 V (ниско), 2,0 V (високо) |
| Пад на напон / RDS(on) / заситување | 0,2 V |
| Термички граници | 125 °C |
| Пакет | TO-220 |
| Белешки / варијанти | Прилагодлива чувствителност |
- Обезбедете соодветен напон на напојување помеѓу 2 и 36 V за модулот.
- Чувајте ја инфрацрвената LED на сензорот чиста за оптимална детекција на пламен.
- Користете ладилник ако модулот работи блиску до неговите врвни струјни граници.
- Бидете внимателни со поврзувањето за да избегнете кратки споеви или неточни врски.
- Прилагодете ја чувствителноста користејќи го вградениот потенциометар за различни апликации.
- Проверете дали алармниот излез може да го издржи поврзаното оптоварување (зумер/LED).
Инструкции за поврзување


За да го поврзете модулот за сензор за пламен со Arduino, започнете со поврзување на VCC пинот на сензорот за пламен со 5V пинот на Arduino. Потоа, поврзете го GND пинот на сензорот со еден од GND пиновите на Arduino. Дигиталниот излезен пин (DO) од сензорот за пламен треба да се поврзе со дигиталниот пин 2 на Arduino, кој ќе го наречеме FLAME во кодот. Конечно, поврзете уред за аларм, како што е зумер, на дигиталниот пин 8 на Arduino, наречен ALARM.
Проверете дали сите врски се цврсти, бидејќи лабавите врски може да доведат до неконзистентно однесување. Ако сакате да го користите аналогниот излез, поврзете го аналогниот излезен пин (AO) со аналоген пин на Arduino, како што е A0, но ова е опционално за основна функционалност. Во видеото, се дискутираат и алтернативни методи на поврзување (во видео на 02:30).
Примери на код и објаснување
Следниот фрагмент од код го иницијализира сензорот за пламен и го поставува серискиот монитор:
#define FLAME 2 // поврзете го DO пинот на сензорот на овој пин
#define ALARM 8 // пин 8 за аларм
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // дефинирајте го FLAME како влезен пин
pinMode(ALARM, OUTPUT); // дефинирајте го ALARM како излезен пин
}
Овде, ги дефинираме пиновите за сензорот за пламен и алармот, и ја иницијализираме сериската комуникација на 9600 бауди. Ова ни овозможува да печатиме пораки на серискиот монитор за дебагирање.
Следно, го читаме сензорот за пламен во главната јамка:
void loop() {
int fire = digitalRead(FLAME); // читајте го FLAME сензорот
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // вклучете го зумерот
Serial.println("Fire! Fire!");
} else {
digitalWrite(ALARM, LOW); // исклучете го зумерот
Serial.println("Peace");
}
delay(200);
}
Овој дел од кодот ја проверува состојбата на сензорот за пламен. Ако детектира пламен (HIGH), го активира алармот и печати "Fire! Fire!" на серискиот монитор. Ако нема пламен (LOW), го исклучува алармот и печати "Peace". Јамката вклучува одложување од 200 милисекунди, кое може да се прилагоди за промена на чувствителноста на детекцијата.
Демонстрација / Што да очекувате
Кога системот е вклучен, серискиот монитор ќе прикаже "Robojax.com Fire Module Test" проследено со "Peace" додека не се детектира пламен. Откако ќе се детектира пламен, зумерот ќе се огласи и LED-то ќе светне, што укажува на состојба на пожар. Можете да ја тестирате чувствителноста на сензорот со прилагодување на потенциометарот на модулот. Бидете внимателни на лажни позитивни резултати, како оние предизвикани од инфрацрвени сигнали од далечински управувачи (во видео на 04:15).
Временски ознаки од видеото
- 00:00 - Вовед во модулот за сензор за пламен
- 02:30 - Инструкции за поврзување
- 04:15 - Демонстрација на детекција на пламен
/*
* This is code for a Flame Sensor module for Arduino.
* Watch the video https://youtu.be/OZkZIP3KlHQ
* Other Arduino libraries and videos https://robojax.com
* *
Flame Sensor module for Arduino
Written by Ahmad Shamshiri for Robojax.com
on January 18, 2018 at 22:21 in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*
*/
/*
What does it do?
When the infrared diode sees the flame, it sends the digital output DO to
also, the level of flame is represented with the analog output.
*/
// 4 Infrared Obstacle code for Robojax.com
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT);//define FLAME input pin
pinMode(ALARM, OUTPUT);//define ALARM output pin
// Flame sensor code for Robojax.com
}
void loop() {
// Flame sensor code for Robojax.com
int fire = digitalRead(FLAME);// read FLAME sensor
if( fire == HIGH)
{
digitalWrite(ALARM,HIGH);// set the buzzer ON
Serial.println("Fire! Fire!");
}else{
digitalWrite(ALARM,LOW); // Set the buzzer OFF
Serial.println("Peace");
// Flame sensor code for Robojax.com
}
delay(200);
}
Ресурси и референци
-
НадворешноLM393 datasheet (PDF)ti.com
Датотеки📁
Нема достапни датотеки.