- Flammesensor
- Komponenter, der kræves
- Kredsløbsdiagram
- Arbejde med flammesensor med Arduino
- Kode forklaring
Brandalarmsystemer er meget almindelige i kommerciel bygning og fabrikker. Disse enheder indeholder sædvanligvis en klynge af sensorer, der konstant overvåger for enhver flamme, gas eller brand i bygningen og udløser en alarm, hvis den opdager nogen af disse. En af de enkleste måder at detektere brand er ved hjælp af en IR-flammesensor, disse sensorer har en IR-fotodiode, der er følsom over for IR-lys. I tilfælde af brand producerer ilden ikke kun varme, men udsender også IR-stråler, ja enhver brændende flamme udsender noget niveau af IR-lys, dette lys er ikke synligt for menneskelige øjne, men vores flammesensor kan registrere det og advar en mikrocontroller som Arduino om, at der er opdaget en brand.
I denne artikel grænseflade vi Flammesensor med Arduino og lærer alle trin til at opbygge brandalarmsystem ved hjælp af Arduino og flammesensor. Flammesensormodulet har en fotodiode til at detektere lyset og en op-amp for at kontrollere følsomheden. Det bruges til at detektere brand og give et HIGH signal ved detektionen. Arduino læser signalet og giver alarm ved at tænde summeren og LED'en. Den her anvendte flammesensor er en IR-baseret flammesensor. Vi har også brugt det samme koncept til at opdage brand i vores brandslukningsrobot, du kan også kontrollere, at vores, hvis du er interesseret.
Flammesensor
En flammedetektor er en sensor designet til at detektere og reagere på tilstedeværelsen af en flamme eller brand. Svar på en detekteret flamme afhænger af installationen, men kan omfatte alarmsignal, deaktivering af en brændstofledning (f.eks. En propan eller en naturgasledning) og aktivering af et brandslukningssystem. IR-flammesensoren, der anvendes i dette projekt, er vist nedenfor, disse sensorer kaldes undertiden også brandsensormodul eller flammedetektor.
Der findes forskellige typer flammedetekteringsmetoder. Nogle af dem er: Ultraviolet detektor, nær IR-array detektor, infrarød (IR) detektor, infrarøde termiske kameraer, UV / IR detektor osv.
Når der brænder ild, udsender det en lille smule infrarødt lys, dette lys modtages af fotodioden (IR-modtager) på sensormodulet. Derefter bruger vi en op-forstærker til at kontrollere, om der er spændingsændring på tværs af IR-modtageren, så hvis der opdages en brand, vil udgangsstiften (DO) give 0V (LAV), og hvis der ikke er nogen, vil udgangsstiften være 5V (HØJ).
I dette projekt bruger vi en IR-baseret flammesensor. Den er baseret på YG1006-sensoren, som er en højhastigheds- og højfølsom NPN-silicium-fototransistor. Det kan registrere infrarødt lys med en bølgelængde i området fra 700 nm til 1000 nm, og dets detektionsvinkel er ca. 60 °. Flammesensormodulet består af en fotodiode (IR-modtager), modstand, kondensator, potentiometer og LM393-komparator i et integreret kredsløb. Følsomheden kan justeres ved at variere det indbyggede potentiometer. Arbejdsspænding er mellem 3,3 v og 5 v jævnstrøm med en digital udgang. En logik højt på output indikerer tilstedeværelsen af flamme eller ild. En logik med lav output indikerer fraværet af flamme eller ild.
Nedenfor er pinbeskrivelsen af flammesensormodulet:
Pin |
Beskrivelse |
Vcc |
3,3 - 5V strømforsyning |
GND |
Jord |
Dout |
Digital udgang |
Anvendelser af flammesensorer
- Brintstationer
- Forbrændingsmonitorer til brændere
- Olie- og gasrørledninger
- Anlæg til fremstilling af biler
- Nukleare anlæg
- Flyhangarer
- Turbinekabinetter
Komponenter, der kræves
- Arduino Uno (ethvert Arduino-kort kan bruges)
- Flammesensormodul
- LED
- Summer
- Modstand
- Jumper ledninger
Kredsløbsdiagram
Billedet nedenfor er Arduino-brandsensorens kredsløbsdiagram, det viser, hvordan man interfacer brandsensormodulet med Arduino.
Arbejde med flammesensor med Arduino
Arduino Uno er et open source-mikrocontrollerkort baseret på ATmega328p-microcontroller. Den har 14 digitale ben (hvoraf 6 ben kan bruges som PWM-udgange), 6 analoge indgange, indbyggede spændingsregulatorer osv. Arduino Uno har 32 KB flashhukommelse, 2 KB SRAM og 1 KB EEPROM. Det fungerer ved en urfrekvens på 16MHz. Arduino Uno understøtter seriel, I2C, SPI-kommunikation til kommunikation med andre enheder. Tabellen nedenfor viser den tekniske specifikation for Arduino Uno.
Mikrocontroller |
ATmega328p |
Driftsspænding |
5V |
Indgangsspænding |
7-12V (anbefales) |
Digitale I / O-ben |
14 |
Analoge ben |
6 |
Glimtvis erindring |
32KB |
SRAM |
2KB |
EEPROM |
1KB |
Urets hastighed |
16 MHz |
Den flammeføleren detekterer tilstedeværelsen af brand eller flammer baseret på infrarød (IR) bølgelængde udsendt af flammen. Det giver logik 1 som output, hvis en flamme detekteres, ellers giver det logik 0 som output. Arduino Uno kontrollerer det logiske niveau på sensorens udgangsstift og udfører yderligere opgaver såsom aktivering af summer og LED og sender en advarselsmeddelelse.
Tjek også vores andre brandalarmprojekter:
- Brandalarm ved hjælp af Thermistor
- Brandalarmsystem ved hjælp af AVR-mikrocontroller
- Arduino-baseret brandbekæmpelsesrobot
Kode forklaring
Den komplette Arduino-kode for dette projekt er givet i slutningen af denne artikel. Koden er opdelt i små meningsfulde bidder og forklaret nedenfor.
I denne del af koden skal vi definere stifter til flammesensor, LED og summer, der er forbundet til Arduino. Flammesensoren er tilsluttet den digitale pin 4 i Arduino. Summeren er tilsluttet den digitale pin 8 i Arduino. LED er forbundet til den digitale pin 7 i Arduino.
Variablen “ flamme_detekteret ” bruges til lagring af den digitale værdi, der er udlæst fra flammesensoren . Baseret på denne værdi registrerer vi tilstedeværelsen af flamme.
int summer = 8; int LED = 7; int flame_sensor = 4; int flamme_detekteret;
I denne del af koden skal vi indstille status for digitale stifter i Arduino og konfigurere
Baudhastighed til seriel kommunikation med pc til visning af status for flammedetekteringskredsløbet.
ugyldig opsætning () { Serial.begin (9600); pinMode (summer, OUTPUT); pinMode (LED, OUTPUT); pinMode (flammesensor, INPUT); }
Denne kodelinje læser det digitale output fra flammesensoren og gemmer det i variablen “ flamme_detekteret ”.
flame_detected = digitalRead (flamme_sensor);
Baseret på værdien, der er gemt i “ flamme_detekteret ”, skal vi tænde summeren og lysdioden. I denne del af koden sammenligner vi værdien, der er gemt i “ flamme_detekteret ” med 0 eller 1.
Hvis det er lig med 1, angiver det, at der er registreret flamme. Vi er nødt til at tænde summer og LED og derefter vise en advarselsmeddelelse i seriel skærm af Arduino IDE.
Hvis det er lig med 0, betyder det, at der ikke er registreret nogen flamme, så vi er nødt til at slukke for LED og summer. Denne proces gentages hvert sekund for at identificere tilstedeværelsen af ild eller flamme.
hvis (flamme_detekteret == 1) { Serial.println ("Flamme registreret…! tage øjeblikkelig handling."); digitalWrite (summer, HIGH); digitalWrite (LED, HIGH); forsinkelse (200); digitalWrite (LED, LAV); forsinkelse (200); } ellers { Serial.println ("Ingen flamme registreret. bliv kølig"); digitalWrite (summer, LAV); digitalWrite (LED, LAV); } forsinkelse (1000);
Vi har bygget en brandslukningsrobot baseret på dette koncept, som automatisk registrerer ilden og pumper vandet ud for at nedbringe ilden. Nu ved du, hvordan du gør branddetektion ved hjælp af Arduino og flammesensor, håber du nød at lære det, hvis du har spørgsmål, lad dem være i kommentarfeltet nedenfor.
Tjek den komplette kode og demo-video nedenfor.