RGB LED jsou elektronické součástky, které mohou vyzařovat různě barevné světlo. V principu jde o tři různobarevné LED (červená, zelená a modrá), které jsou umístěny do společného průhledného pouzdra se čtyřmi napájecími kolíky. Ze třech základních barev (červená, zelená a modrá) lze pomocí jejich různých jasů namíchat všechny možné barvy. V námi použité experimentální sadě je k dispozici RGB modul, který kromě RGB LED obsahuje i trojici ochranných rezistorů, takže jej lze připojit přímo na PWM výstupy modulu Arduino. RGB modul se připojuje pomocí čtveřice pinů: R, G, B a –, kde vývody R/G/B jsou anody jednotlivých barevných LED, vývod – je společnou katodou.
V tomto experimentu budeme opět využívat technologii PWM, tentokráte pro vládání jasu jednotlivých barevných LED obsažených v RGB LED. Ovládání jasu jedné LED jsme zvládli v předešlé lekci, takže nyní to využijeme postupně třikrát. Každou ze tří barevných LED budeme řídit jedním PWM kanálem, který budeme nastavovat na 255 stupňů jasu. Pokud všechny tři kanály základních barev jsou všechny nastaveny na 0, LED zhasne. Pokud jsou všechny nastaveny na maximální hodnotu 255, LED bude zářit nejjasněji a výsledná barva LED bude bílá. Nastavováním různých hodnot barevných komponent získáme různé barvy a odstíny svitu RGB LED. Například trojice čísel R:128, G:255 a B:16 vygeneruje světle zelenou barvu.
Podobně jako u LED segmentových zobrazovačů (blíže je poznáme v pozdějších lekcích) můžeme RGB LED dělit na dva základní typy:
Vždy je potřeba vědět, s jakým typem pracujeme, neboť se oba typy liší základním elektronické zapojení. V tomto experimentu budeme používat RGB LED se společnou katodou.
Krok 1: Sestavíme si obvod podle následujícího obrázku nebo schématu. Propojení modulu RGB LED a modulu Arduino zobrazuje následující tabulka.
Blokové schéma
Elektronické schéma
RGB LED modul | Modul Arduino |
---|---|
R | 11 |
G | 10 |
B | 9 |
– | GND |
Pro nastavení jednotlivých PWM výstupů barevných komponent RGB LED využijeme podprogram. Použití podprogramu jsme již několikrát zvládli. Novinkou v této lekci bude použití podprogramu se vstupními parametry. Budeme tedy chtít vytvořit programový blok podprogramu, do kterého bude možné vkládat vstupní hodnoty, se kterými tento blok bude pracovat. V našem případě budou vstupní parametry čísla pro rozsvícení jednotlivých barevných složek.
Vytvoření tohoto bloku podprogramu bude v prostředí mBlock stejné jako ve všech předešlých případech, tedy pomocí ikony „Moje bloky“ a kliknutím na volbu „Vytvoř blok“. Po pojmenování podprogramu musíme přidat vstupní parametry pomocí ikon v dolní části okna průvodce. Kliknutím na jednotlivé nabídky „Přidat vstup číslo“, „Přidat vstup text“ atd. budou do programového bloku podprogramu přidány zvolené vstupní parametry. Tyto parametry můžeme pojmenovat, čímž vlastně založíme stejnojmenné lokální proměnné, které pak můžeme v rámci podprogramu používat.
Parametry v deklaraci podprogramu můžeme nejen přidávat, ale i odebírat. V okamžiku, kdy klikneme na název parametry, jako bychom ho chtěli přejmenovat, se nad parametrem objeví ikona koše. Právě pomocí této ikony můžeme zvolený parametr z deklarace odstranit.
Po vytvoření zvoleného bloku podprogramu včetně potřebných vstupních parametrů, potvrdíme deklaraci podprogramu pomocí tlačítka .
Krok 2: V prostředí mBlock je třeba vytvořit následující program. Nejdříve založíme podprogram nazvaný color
se vstupními číselnými parametry red
, green
, blue
(odpovídajících barevným složkám). Po definici hlavičky podprogramu vytvoříme kód podprogramu, který bude ovládat RGB LED, tedy vysálat PWM signál na piny 9
, 10
a 11
.
Jakmile máme definovanou „pracovní náplň“ vlastního programového bloku color
, můžeme tento programový blok použít pro vytvoření následujícího hlavního kódu programu. Opět připomeneme, že jakmile budeme potřebovat do programu vložit růžový programový blok color
, najdeme jej v příkazové kategorii „Moje bloky“ a pracujeme s ním stejně jako s jakýmkoliv jiným blokem.
Celý program včetně podprogramu lze stáhnout z:
http://mBlock.fyzika.net/
Pokud chápeme, jak funguje podprogram color
se zadanými vstupními parametry red
, green
, blue
, je tělo hlavního programu již jen opakovaným voláním této procedury s různými vstupními parametry, které určují RGB kód zadané barvy. Díky tomu je nejdříve nastavena červená barva (R:255, G:0, B:0), po vteřinové pauze následuje rozsvícení RGB LED v zelené barvě (R:0, G:255, B:0) a pak v modré (R:0, G:0, B:255). Po dalších sekundových prodlevách následují základní barvy duhy: červená (R:255, G:0, B:0), oranžová (R:237, G:109, B:0), žlutá (R:255, G:215, B:0), zelená (R:0, G:255, B:0), modrá (R:0, G:0, B:255), indigo (R:255, G:46, B:90), purpurová (R:128, G:0, B:128). Vše se neustále opakuje, neboť příkazy pro nastavení jednotlivých barev jsou uzavřeny v základní nekonečné smyčce „opakuj stále“.
Krok 3: Zkompilujeme kód a nahrajeme do modulu Arduino tlačítkem .
Krok 4: Nyní můžeme vidět, jak RGB LED postupně mění barvy a svítí červeně, zeleně, modře, oranžově, žlutě, fialově, indigo atd.