Letní IoT: Den 2
Řádka 97: | Řádka 97: | ||
Tak hurá do práce, zkuste! | Tak hurá do práce, zkuste! | ||
#Zkuste použít tento [https://create.arduino.cc/projecthub/muhammad-aqib/arduino-rgb-led-tutorial-fc003e kód] - není přímo na naše zařízení, upravte si ho :D | #Zkuste použít tento [https://create.arduino.cc/projecthub/muhammad-aqib/arduino-rgb-led-tutorial-fc003e 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í === | ||
+ | |||
+ | [https://randomnerdtutorials.com/esp32-esp8266-i2c-lcd-arduino-ide/ prozkoumejte!] | ||
+ | |||
+ | 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" | ||
+ | |||
+ | == BMP280 == |
Verze z 12. 7. 2020, 10:35
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"