Kód Arduina a video: Modul snímača plameňa pre Arduino
V tomto návode si ukážeme, ako používať modul snímača plameňa s Arduinom. Snímač plameňa deteguje prítomnosť plameňa a môže spustiť alarm alebo indikátor, keď ho zistí. Na konci tohto projektu budete mať funkčný systém, ktorý reaguje na detekciu plameňa zvukovým upozornením a vizuálnou spätnou väzbou.


Modul snímača plameňa funguje pomocou infračervenej LED na detekciu plameňov. Keď sa zistí plameň, modul vydá signál, ktorý možno použiť na aktiváciu iných komponentov, ako je bzučiak alebo LED. Tento projekt bude zahŕňať zapojenie snímača plameňa k Arduinu a napísanie jednoduchého programu na spracovanie vstupu a výstupu.
Pre lepšie pochopenie kódu a zapojenia vám odporúčam pozrieť si príslušné video (vo videu o 00:00).
Vysvetlenie hardvéru
Hlavné komponenty v tomto projekte zahŕňajú modul snímača plameňa, dosku Arduino a bzučiak alebo LED na upozornenie. Snímač plameňa má štyri piny: digitálny výstupný pin (DO), analógový výstupný pin (AO), napájací pin (VCC) a uzemňovací pin (GND). Digitálny výstupný pin vysiela signál HIGH, keď sa zistí plameň, zatiaľ čo analógový výstup poskytuje rôzne hodnoty na základe intenzity plameňa.
Arduino číta digitálny výstup, aby určilo, či je prítomný plameň. Keď snímač zistí plameň, Arduino môže potom aktivovať alarm alebo svetlo pomocou výstupného pinu. Citlivosť detekcie plameňa možno nastaviť pomocou zabudovaného potenciometra na module.
Podrobnosti z datasheetu
| Výrobca | Generic |
|---|---|
| Číslo dielu | LM393 |
| Logické/IO napätie | 5 V |
| Napájacie napätie | 2–36 V |
| Výstupný prúd (na kanál) | 20 mA |
| Špičkový prúd (na kanál) | 50 mA |
| Odporúčanie pre PWM frekvenciu | N/A |
| Logické prahové hodnoty vstupu | 0,8 V (nízka), 2,0 V (vysoká) |
| Pokles napätia / RDS(on) / saturácia | 0,2 V |
| Tepelné limity | 125 °C |
| Puzdro | TO-220 |
| Poznámky / varianty | Nastaviteľná citlivosť |
- Zabezpečte správne napájacie napätie medzi 2 až 36 V pre modul.
- Udržujte infračervenú LED snímača čistú pre optimálnu detekciu plameňa.
- Použite chladič, ak modul pracuje blízko svojich špičkových prúdových limitov.
- Buďte opatrní pri zapájaní, aby ste predišli skratom alebo nesprávnym pripojeniam.
- Nastavte citlivosť pomocou potenciometra na doske pre rôzne aplikácie.
- Overte, či alarmový výstup zvládne pripojenú záťaž (bzučiak/LED).
Pokyny na zapojenie


Na zapojenie modulu snímača plameňa k Arduinu začnite pripojením pinu VCC snímača plameňa na pin 5V na Arduine. Potom pripojte pin GND snímača na jeden z pinov GND na Arduine. Digitálny výstupný pin (DO) zo snímača plameňa by mal byť pripojený na digitálny pin 2 na Arduine, ktorý budeme v kóde označovať ako FLAME. Nakoniec pripojte alarmové zariadenie, napríklad bzučiak, na digitálny pin 8 na Arduine, označovaný ako ALARM.
Uistite sa, že všetky spojenia sú pevné, pretože voľné spojenia môžu viesť k nekonzistentnému správaniu. Ak chcete použiť analógový výstup, pripojte analógový výstupný pin (AO) na analógový pin na Arduine, napríklad A0, ale to je voliteľné pre základnú funkčnosť. Vo videu sa diskutuje aj o alternatívnych metódach zapojenia (vo videu o 02:30).
Príklady kódu a vysvetlenie
Nasledujúci úryvok kódu inicializuje snímač plameňa a nastaví sériový monitor:
#define FLAME 2 // pripojte DO pin snímača na tento pin
#define ALARM 8 // pin 8 pre alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // definujte FLAME ako vstupný pin
pinMode(ALARM, OUTPUT); // definujte ALARM ako výstupný pin
}
Tu definujeme piny pre snímač plameňa a alarm a inicializujeme sériovú komunikáciu pri 9600 baudoch. To nám umožňuje tlačiť správy na sériový monitor na ladenie.
Ďalej čítame snímač plameňa v hlavnej slučke:
void loop() {
int fire = digitalRead(FLAME); // čítanie FLAME snímača
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // zapnutie bzučiaka
Serial.println("Fire! Fire!");
} else {
digitalWrite(ALARM, LOW); // vypnutie bzučiaka
Serial.println("Peace");
}
delay(200);
}
Táto časť kódu kontroluje stav snímača plameňa. Ak zistí plameň (HIGH), aktivuje alarm a vytlačí "Fire! Fire!" na sériový monitor. Ak nie je plameň (LOW), vypne alarm a vytlačí "Peace". Slučka obsahuje oneskorenie 200 milisekúnd, ktoré možno upraviť na zmenu citlivosti detekcie.
Demonštrácia / Čo očakávať
Keď je systém zapnutý, sériový monitor zobrazí "Robojax.com Fire Module Test" a potom "Peace", kým sa nezistí plameň. Akonáhle sa zistí plameň, bzučiak zaznie a LED sa rozsvieti, čo indikuje požiarny stav. Citlivosť snímača môžete otestovať nastavením potenciometra na module. Buďte opatrní pri falošných poplachoch, napríklad tých spôsobených infračervenými signálmi z diaľkových ovládačov (vo videu o 04:15).
Časové značky videa
- 00:00 - Úvod do modulu snímača plameňa
- 02:30 - Pokyny na zapojenie
- 04:15 - Demonštrácia detekcie plameňa
/*
* 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);
}
Zdroje a referencie
-
ExternéLM393 datasheet (PDF)ti.com
Súbory📁
Žiadne súbory nie sú k dispozícii.