Letní IoT: Den 2
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 přivedeme napětí ke katodě která je spojena přechodem pn emitujícím zelené světlo.
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
Display
Teď si ukážeme další výstupní zařízení - display.
Aby display správně fungoval, musíme udělat tyto věci
importovat knihovny #include <Wire.h> #include <LiquidCrystal_I2C.h> nastavit velikost displeje LiquidCrystal_I2C lcd(0x27, 16, 2); ve void setup() lcd.begin();
A to je vše!
A teď si ukážeme pár metod pro práci s displejem
lcd.backlight(); - rožne se podsvícení lcd.noBacklight(); - zhasne se podsvícení lcd.print(); - napíše na display (pokračuje na aktuálním řádku) lcd.printl(); - napíše na nový řádek displeje lcd.clear(); - smaže vše z displeje lcd.setCursor(0, 1); - nastaví kurzor na (znak, řádek)
Zapojení
Tento display komunikuje přes I2C a na napájení má 3V3.
Zkuste to zapojit sami a pak zavolejte lektora na zkontrolování.
Samostatný úkol
- Napište na display své jméno
- Napište na display své jméno a pod to "Hrajeme si s IoT"
- 5 sekund bude na displeji Vaše jméno a dalších 5 s tam bude "Hrajeme si s IoT"