Lekce 13
RGB LED

Úvod

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í trojice pinů: R, G, B, kde vývody R/G/B jsou anody jednotlivých barevných LED, a čtvrtého vývodu, který je společnou katodou.

modul RGB LED

Použité komponenty

  • modul Arduino
  • USB kabel
  • RGB LED modul
  • vodiče „samec-samice“

Princip

V tomto experimentu budeme opět využívat technologii PWM, tentokráte pro ovlá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 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:

  1. typ se společnou anodou,
  2. typ se společnou katodou.

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.


Postup experimentu

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

Blokove schema

Elektronické schéma

Elektronicke schema
RGB LED modul Modul Arduino
R 11
G 10
B 9
GND

Podprogram se vstupními parametry

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 parametru, 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.

podprogram s parametry - mBlock

Postupně vytvoříme podprogram nazvaný color, který bude mít tři vstupní číselné parametry (red, green a blue).

Po vytvoření zvoleného bloku podprogramu včetně potřebných vstupních parametrů, potvrdíme deklaraci podprogramu pomocí tlačítka tlacitko OK.



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.

program v prostredi mBlock

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.

program v prostredi mBlock

Celý program včetně podprogramu lze stáhnout z:
http://mBlock.fyzika.net/zdrojove-kody/lekce-13/13-RGB-LED.mblock.


ikona vysvetleni Vysvětlení kódu

Pro pochopení celého programu je klíčové pochopení podprogramu color. Naštěstí jeho část není nikterak složitá. Do podprogramu vstupují tři hodnoty určující intenzity jednotlivých barev – vstupní číselné proměnné red, green a blue. Tyto vstupní hodnoty jsou použity jako výstupní hodnoty pro PWM výstupy jednotlivých barevných složek připojené RGB LED. Podobně jako v předešlé lekci výstupní hodnoty PWM určují míru rozsvícení dané LED. Tím dosahujeme různých světelných intenzit červené, zelené a modré složky výsledného emitovaného světla.

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 tlacitko nahrat.

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.

Pohled na experiment