Lekce 13
Třináctá lekce Arduino kurzu pro začátečníky: zapojíte senzor plamene a necháte ho rozsvítit LED, jakmile zachytí oheň. Ukážeme si zapojení, čtení analogového vstupu funkcí analogRead i kód do Arduino IDE – čidlo reaguje na infračervené světlo plamene, takže poslouží jako základ jednoduchého požárního hlásiče.
Popisek obrázku: kratší nožička senzoru (katoda) jde na 5 V, delší (anoda) přes rezistor 10 kΩ na GND. Z anody vede propojovací vodič na analogový vstup A0. Jako signalizace poslouží vestavěná LED u pinu 13.
| Komponenta | Arduino |
|---|---|
| Senzor plamene – katoda (kratší nožička) | 5V |
| Senzor plamene – anoda (delší nožička) | A0 + rezistor 10 kΩ |
| Rezistor 10 kΩ (druhý konec) | GND |
| LED (vestavěná na desce) | pin 13 |
Senzor plamene je vlastně infračervená fotodioda, která rozpozná světlo o vlnové délce zhruba 700 až 1000 nm – přesně v tomto rozsahu vyzařuje plamen. Čidlo je zapojené jako dělič napětí s rezistorem 10 kΩ, takže když se objeví oheň, napětí na vstupu A0 se změní. Arduino tuto hodnotu přečte funkcí analogRead a porovná ji s nastaveným prahem. Překročí-li ho, znamená to oheň poblíž a Arduino rozsvítí LED.
// Senzor plamene
// Když přiblížíte k čidlu zapalovač, LED na pinu 13 se rozsvítí.
// Email: podpora@laskakit.cz · Web: laskakit.cz
int flame = A0; // číslo pinu senzoru
int LED = 13; // číslo pinu LEDky
int val = 0; // inicializace proměnné
void setup() {
pinMode(LED, OUTPUT); // LED jako výstup
pinMode(flame, INPUT); // senzor jako vstup
Serial.begin(9600); // spustit sériový monitor na 9600 Bd
}
void loop() {
val = analogRead(flame); // přečíst hodnotu z čidla
Serial.println(val); // vypsat hodnotu do sériového monitoru
if (val > 30) { // pokud je hodnota větší než 30
digitalWrite(LED, HIGH); // zapnout LEDku
} else {
digitalWrite(LED, LOW); // jinak ji vypnout
}
delay(500); // počkat 500 ms
}
if (val > 30). Když je v místnosti hodně světla, číslo zvyšte.QNa co reaguje senzor plamene?