Hľadať kód

Kód Arduina a video: Modul snímača plameňa pre Arduino

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.

infrared flame sensor module -blue
infrared flame sensor module

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ýrobcaGeneric
Číslo dieluLM393
Logické/IO napätie5 V
Napájacie napätie2–36 V
Výstupný prúd (na kanál)20 mA
Špičkový prúd (na kanál)50 mA
Odporúčanie pre PWM frekvenciuN/A
Logické prahové hodnoty vstupu0,8 V (nízka), 2,0 V (vysoká)
Pokles napätia / RDS(on) / saturácia0,2 V
Tepelné limity125 °C
PuzdroTO-220
Poznámky / variantyNastaviteľ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

Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor

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

Obrázky

infrared flame sensor module -blue
infrared flame sensor module -blue
infrared flame sensor module
infrared flame sensor module
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
62-This is the Arduino code and video for a flame sensor module for Arduino.
Jazyk: C++
/*
 * 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

Súbory📁

Žiadne súbory nie sú k dispozícii.