Letní IoT: Den 2
(→Samostatný úkol) |
|||
Řádka 81: | Řádka 81: | ||
#zelená barva | #zelená barva | ||
#bílá barva | #bílá barva | ||
+ | #Vaše oblíbená barva | ||
#černá barva | #černá barva | ||
Verze z 11. 7. 2020, 10:38
Obsah |
Opakování
Na začátek si zopakujeme věci, co jsme dělali včera
- Blikání ledky v 2s prodlevou
- LEDka 5× blikne (5s) a pak 3 s počká (for cyklus)
- Při každém bliknutí se vypíše do konzole "Bliknutí číslo: "
- LEDka s postupně rozsvítí a pak postupně zhasne
Vlastní metoda
Již známe 2 metody void setup() a void loop() My se teď naučíme vytvořit si vlastní metodu.
Metoda se skládá z návratového typu, názvu metody a v závorkách má parametry.
My nepotřebujeme, aby nám metoda něco vracela, tak použijeme void
void blikni() { digitalWrite(ledka, HIGH); delay(500) digitalWrite(ledka, LOW); }
a teď stačí napsat
blikni();
a provede se to, co je v té metodě... paráda, co? :D
Metodě můžeme dát parametr - počet bliknutí třeba
void blikni(int pocet) { for(int i = 0, i < pocet; i++) { digitalWrite(ledka, HIGH); delay(500) digitalWrite(ledka, LOW); delay(500); } }
Co udělá tento příkaz? (vyzkošej!)
blikni(5);
Samostatný úkol
- Vytvoř metodu, co na 3 s rozsvítí ledku.
- Vytvoř metodu, co 10× vypíše "blik"
- Vytvoř metodu, co 3× vypíše zadané slovo a zabliká při tom
RGB LEDka
Popis
RGB LEDka má v sobě jakoby 3 LEDky - Red, Green, Blue Má 3 katody (+) a jednu anodu (-) [schéma]
Abychom ji mohli rozsvítit do námi požadované barvy, musíme něco vědět o [RGB mobelu] Teoreticky je 16milionů 255natřetí možných kombinací, jak může svítit.
Budeme chtít zelenou - tak rožneme jen zelenou katodu.
Zapojení
GPIO pin - rezistor - katoda
Příklady
#define red ... #define gre ... #fefine blu ... Chceme čevenou digitalWrite(red, HIGH); Chceme žlutou digitalWrite(red, HIGH); digitalWrite(gre, HIGH);
Samostatný úkol
- zelená barva
- bílá barva
- Vaše oblíbená barva
- černá barva
Moc kombinací není, co?
Příklady 2
Metodu analogWrite() již znáne,
Pomocí ní můžeme dát RGB diodě jakoukoliv barvu.
Víme, že RGB modul je 0 - 255 a že metoda analogWrite() má rozsah 0 - 1023
Samostatný úkol 2
Tak hurá do práce, zkuste!
- Zkuste použít tento kód - není přímo na naše zařízení, upravte si ho :D