Minule jsme připojili základní komponenty LED a tlačítko a prošli základy programování v IDE Arduino. Dnes to rozšíříme o další komponenty, které se nám v IoT projektech mohou hodit LCD DISPLEJ a SÉRIOVOU LINKU a procvičíme programování složitějších systémů. Cílem dnešní lekce je obohatit náš dosavadní systém a připravit se na připojení do cloudu Z minulé lekce: Pochopení a orientace v datasheetu základní parametry, které není radno překračovat. Základní programování v IDE Arduino syntax, kompilace, nahrání do vývojové desky, sériový monitor. Připojení LED a tlačítka.. Před začátkem lekce zkus odpovědět na otázky: Na jaké důležité hodnoty v datasheetu je vhodné u mikrokontroléru koukat? Jak změnit tlačítko (připojení a kód) tak, aby reagovalo na hodnotu LOW? Mohu na I/O pin připojit cokoliv?
1. Vyšší level programování WIRING je programovací jazyk vytvořený pro programování mikrokontroléru bez specifických znalostí hardware. V současné době je nejznámější jako součást open-source platformy Arduino, kde má podobu frameworku v jazyce C++. Program v jazyce Wiring se nazývá sketch a typicky má dvě hlavní části: setup() funkce, která se spustí jednou na začátku programu a zpravidla obsahuje počáteční nastavení. loop() automaticky opakovaně volaná funkce, když je deska Arduino připojena k napájení. 2. POSILUJEME PROUD LED/ MOTOREM/ RELÉ Minule jsme připojili LED pro jednoduchou indikaci přímo na výstup mikrokontroléru. Je to ale vždy vhodné řešení? Navíc pokud chceme připojit periferii se vstupním napětím vyšším než 5 V (3,3 V), nezbyde nám nic jiného. Koukněme do datasheetu na hodnotu DC current per I/O pin.
Zjišťujeme, že hodnota jedním I/O pinem je 40 ma, což pro běžnou LED stačí. Diodou s větším proudem (konkrétně nad 40 ma) bychom ale mohli mikrokontrolér zničit. Můžeme použít proudové posílení s NPN tranzistorem. Pro napájení diody (či jiného prvku) můžeme pak použít dokonce i jiné napájecí napětí. POZOR: vždy zařazujte ochranný odpor R1 (v případě LED) i R2. Rezistor R1 tvoří ochranný odpor pro diodu omezuje proud vhodně tak, aby se dioda nezničila.
3. LCD DISPLEJ LCD displej nám umožní rozšíření našeho projektu o interakci s uživatelem může zobrazit informace nebo chybové hlášky. My LCD displej zapojíme dle schématu na obrázku 3. Propojte LCD displej s Arduinem dle obrázku a schématu. Importujte knihovnu LiquidCrystal_I2C.h a Wire.h pro další postup. Pro lepší porozumnění si projděte dokumentaci ke knihovnám.
4. Sériová linka Sériová linka je rozhraní, které můžete použít pro komunikaci vašeho zařízení např. s počítačem (nebo jiným zařízením podporující sériovou linku). Arduino standardně komunikuje přes USB s počítačem.
Pro zobrazení dat stačí pouze otevřít Sériový monitor (v IDE: Nástroje Sériový monitor): Pokud máte nahraný program odesílající data po sériové lince, zde byste je měli vidět. Funkce Serial.begin(9600) nastartuje sériovou linku. Funkcí Serial.available() zjišťujeme dostupnost sériové linky. Funkce Serial.print() tiskneme číslo/řetězec/znak na rozhraní sériové linky. Obdobně funkce Serial.println() s odřádkováním.
V dnešní lekci jsme se pustili do složitějšího programování vestavných systémů, proudově rozšířili výstup tak, abychom mohli zapojit více svítivou LED, MOTOR, nebo RELÉ, připojili LCD DISPLEJ a jsme schopní komunikovat přes SÉRIOVOU LINKU s počítačem. Příště už nebudeme lokální připojíme totiž naše zařízení na Internet, do IBM BLUEMIX CLOUDU, takže budeme online! Pokud ti zbyl čas, pokračuj v následujících úkolech. Pokud ne, máš inspiraci na samostudium... Doplňující materiály: https://uart.cz/139/arduino-a-seriova-komunikace/ CO SI ZAPAMATOVAT? co můžu a nemůžu připojit na I/O pin, a jak se o tom rozhodnu. jak připojit LCD displej a zobrazím na něm text. jak komunikuji s počítačem přes sériovou linku. jak porozumět cizímu kódu.