Arduino-kode en video: Vlam-sensormodule vir Arduino
In hierdie tutoriaal gaan ons ondersoek hoe om 'n vlam-sensormodule met 'n Arduino te gebruik. Die vlamsensor bespeur die teenwoordigheid van 'n vlam en kan 'n alarm of aanwyser aktiveer wanneer dit gebeur. Teen die einde van hierdie projek sal jy 'n werkende stelsel hê wat op vlambespeuring reageer met 'n hoorbare alarm en visuele terugvoer.


Die vlamsensor-module werk deur 'n infrarooi-LED te gebruik om vlams te bespeur. Wanneer 'n vlam bespeur word, stuur die module 'n sein uit wat gebruik kan word om ander komponente, soos 'n gonser of 'n LED, te aktiveer. Hierdie projek sal die bedrading van die vlamsensor aan die Arduino behels en die skryf van 'n eenvoudige program om die invoer en uitvoer te hanteer.
Vir 'n duideliker begrip van die kode en bedrading, moedig ek jou aan om die gepaardgaande video te kyk (in video by 00:00).
Hardeware Verduidelik
Die hoofkomponente in hierdie projek sluit die vlamsensor-module, 'n Arduino-bord, en 'n gonser of LED vir waarskuwing in. Die vlamsensor het vier penne: 'n digitale uitsetpen (DO), 'n analoog uitsetpen (AO), 'n kragpen (VCC), en 'n aardpen (GND). Die digitale uitsetpen stuur 'n HOË sein wanneer 'n vlam bespeur word, terwyl die analoog uitset wisselende waardes verskaf gebaseer op die intensiteit van die vlam.
Die Arduino lees die digitale uitset om te bepaal of daar 'n vlam teenwoordig is. Wanneer die sensor 'n vlam bespeur, kan die Arduino dan 'n alarm of lig aktiveer deur 'n uitsetpen te gebruik. Die sensitiwiteit van die vlambespeuring kan aangepas word deur 'n ingeboude potensiometer op die module te gebruik.
Datablad Besonderhede
| Vervaardiger | Generies |
|---|---|
| Deelnommer | LM393 |
| Logika/IO-spanning | 5 V |
| Toevoerspanning | 2–36 V |
| Uitsetstroom (per kanaal) | 20 mA |
| Piekstroom (per kanaal) | 50 mA |
| PWM-frekwensie riglyne | N/A |
| Invoer logika drempels | 0.8 V (laag), 2.0 V (hoog) |
| Spanningval / RDS(on) / versadiging | 0.2 V |
| Termiese limiete | 125 °C |
| Pakket | TO-220 |
| Notas / variante | Verstelbare sensitiwiteit |
- Verseker behoorlike spanningtoevoer tussen 2 tot 36 V vir die module.
- Hou die sensor se infrarooi-LED skoon vir optimale vlambespeuring.
- Gebruik 'n hitteput as die module naby sy piekstroomlimiete werk.
- Wees versigtig met bedrading om kortsluitings of verkeerde verbindings te vermy.
- Pas die sensitiwiteit aan deur die aanboord-potensiometer vir verskillende toepassings te gebruik.
- Verifieer dat die alarmuitset die gekoppelde las (gonser/LED) kan hanteer.
Bedradingsinstruksies


Om die vlamsensor-module aan die Arduino te bedraad, begin deur die VCC-pen van die vlamsensor aan die 5V-pen op die Arduino te koppel. Koppel dan die GND-pen van die sensor aan een van die GND-penne op die Arduino. Die digitale uitsetpen (DO) van die vlamsensor moet aan digitale pen 2 op die Arduino gekoppel word, wat ons as FLAME in die kode sal verwys. Koppel laastens 'n alarmtoestel, soos 'n gonser, aan digitale pen 8 op die Arduino, verwys as ALARM.
Maak seker dat alle verbindings veilig is, aangesien los verbindings tot inkonsekwente gedrag kan lei. As jy die analoog uitset wil gebruik, koppel die analoog uitsetpen (AO) aan 'n analoog pen op die Arduino, soos A0, maar dit is opsioneel vir basiese funksionaliteit. In die video word alternatiewe bedradingsmetodes ook bespreek (in video by 02:30).
Kode Voorbeelde & Deurloop
Die volgende kodestuk initialiseer die vlamsensor en stel die seriële monitor op:
#define FLAME 2 // koppel DO-pen van sensor aan hierdie pen
#define ALARM 8 // pen 8 vir Alarm
void setup() {
Serial.begin(9600);
Serial.println("Robojax.com Fire Module Test");
pinMode(FLAME, INPUT); // definieer FLAME invoerpen
pinMode(ALARM, OUTPUT); // definieer ALARM uitsetpen
}
Hier definieer ons die penne vir die vlamsensor en alarm, en initialiseer seriële kommunikasie teen 9600 baud. Dit stel ons in staat om boodskappe na die seriële monitor te druk vir ontfouting.
Volgende lees ons die vlamsensor in die hoof-lus:
void loop() {
int fire = digitalRead(FLAME); // lees FLAME sensor
if(fire == HIGH) {
digitalWrite(ALARM, HIGH); // stel die gonser AAN
Serial.println("Vuur! Vuur!");
} else {
digitalWrite(ALARM, LOW); // Stel die gonser AF
Serial.println("Vrede");
}
delay(200);
}
Hierdie deel van die kode kontroleer die toestand van die vlamsensor. As dit 'n vlam bespeur (HOOG), aktiveer dit die alarm en druk "Vuur! Vuur!" na die seriële monitor. As daar geen vlam is nie (LAAG), skakel dit die alarm af en druk "Vrede". Die lus sluit 'n vertraging van 200 millisekondes in, wat aangepas kan word om die sensitiwiteit van die bespeuring te verander.
Demonstrasie / Wat om te Verwags
Wanneer die stelsel aangeskakel word, sal die seriële monitor "Robojax.com Fire Module Test" vertoon, gevolg deur "Vrede" totdat 'n vlam bespeur word. Sodra 'n vlam bespeur word, sal die gonser klink, en die LED sal aangaan, wat 'n brandtoestand aandui. Jy kan die sensitiwiteit van die sensor toets deur die potensiometer op die module aan te pas. Wees versigtig vir vals positiewe, soos dié wat veroorsaak word deur infrarooi seine van afstandbeheerders (in video by 04:15).
Video Tydstempels
- 00:00 - Inleiding tot die vlamsensor-module
- 02:30 - Bedradingsinstruksies
- 04:15 - Demonstrasie van vlambespeuring
/*
* 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);
}
Hulpbronne en verwysings
-
BuitenburgLM393 datasheet (PDF)ti.com
Lêers📁
Geen lêers beskikbaar.