MagicLED - adresovatelný LED pásek ovládaný Arduinem
Na obrázku vidíme rozdíl mezi klasickým LED RGB čipem 5050 a s řadičem WS2812. Klasický čip 5050 je vlastně pouze barevná LED dioda, která má v sobě integrované tři barevné LED diody se základními barvami R (RED - Červená), G (GREEN - Zelená), B (BLUE - modrá). Díky tomu lze nastavit jakákoliv barva, avšak pouze pro celý LED pásek. Tyto pásky většinou používají napájecí napětí 12V.
Oproti tomu adresovatelné nebo také digitální LED pásky mají v každé diodě integrovaný čip WS2812, který dokáže ovládat v celém LED pásku každou diodu zvlášť. Nejenom, že dokáže přiřadit jakékoliv diodě v pásku jakoukoliv barvu z 16 miliónů, ale také umí přesně adresovat jaká dioda má být rozsvícena či zhasnuta. Pokud budeme mít delší LED pásek nebo jich dáme více pod sebe, můžeme tak získat a jednoduše ovládat světelný panel např. s běžícím textem či dokonce obrazem např. z kamery.
LED pásky s řadičem WS2812 potřebují napětí 5V. Jedna RGB dioda potřebuje proud 60mA = (červená 20mA, zelená 20mA, modrá 20mA) Pokud máme pásek s hustotou 60ks RGB diod na 1m, pak potřebujeme proud 3,6A (60ks x 60mA= 3600mA = 3,6A). Při délce pásku 5m pak musíme počítat s 18A (5m x 3,6A = 18A). Pro náš účel, kdy máme pouze 1m LED pásku, můžeme použít externí napájecí adaptér 5V 3A. Diody nebudou mít 100% jas, ale fungovat to bude spolehlivě. Také lze použít PC zdroj, který má při 5V až 22A. Čím víc ampér bude mít náš zdroj, tím lépe. Nemusíme se bát, LED pásek si vezme pouze tolik ampér kolik spotřebuje.
- DO ---------------- Data výstup
- DIN --------------- Data vstup
- +5V --------------- Napájení +5V
- GND -------------- GND
Zapojení napájení vhodné pro testování nahraných programů do Arduina
Arduino je připojeno k počítači pomocí kabelu USB, který jej nejenom napájí +5V a GND, ale z PC do Arduina nahrává zkušební programy. DIN (vstupní data) na LED pásku připojíme do Arduino na PIN 6. + 5V z LED pásku zapojíme na + 5V napájecího adaptéru. GND z LED pásku zapojíme na GND napájecího adaptéru a na GND Arduina. Arduino je připojeno k PC přes USB.
Zapojení napájení vhodné pro zabudování již hotové a odladěné aplikace
Arduino s nahraným a odladěným programem je připojeno na stejné napájení jako LED pásek. DIN (vstupní data) na LED pásku připojíme do Arduino na PIN 6. + 5V z LED pásku zapojíme na + 5V napájecího adaptéru a na +5V Arduina. GND z LED pásku zapojíme na GND napájecího adaptéru a na GND Arduina. Arduino již není připojeno k PC přes USB.
Programování Arduina a LED pásku WS2812
Teď, když víme, jak připojit LED pásek k Arduinu, můžeme začít programovat. Mohli bychom samozřejmě jít do všech detailů časování čipu WS2812, ale protože již existují velmi dobré knihovny, které udělají obtížnou práci za nás, spokojíme se s tím. Nejpoužívanější v této chvíli jsou knihovny NeoPixel (AdaFruit). NeoPixel Knihovnu pro Arduino lze stáhnout zde:
Spustíme v PC program Arduino verze 1.5.8 (ke stáhnutí na stránkách arduino.cc) po té vybereme v menu Arduina "Skica|Import knihovny|Přidat Knihovnu... " a v dialogovém okně vyberte soubor stažený ZIP soubor. Tím se automaticky nainstaluje knihovna do Arduina. Také můžete rozbalit "zip" soubor přímo do adresáře "libraries" (Arduino knihovny). Je třeba zavřít a otevřít Arduino, pak budou nově instalované nabídky viditelné v nabídce. První příklad na vyzkoušení je nabízen "striptest". Nahrajeme jej výběrem z menu "Soubor|Příklady|AdaFruit_NeoPixel|striptest". Před kompilací a nahrání skici do vašeho Arduina, je třeba nejprve ověřit některé základní nastavení v kódu. Ujistěte se, pin definovaný jako "PIN 6" odpovídá číslu PINu, na který máme připojený LED pásek. Ujistěte se, že první parametr v Adafruit_NeoPixel ( 60 ... odpovídá počtu LED diod ve vašem LED pásku (zde : 60 ). Pokud jste použili schéma zapojení, které je uvedeno výše, klikněte na tlačítko "Nahrát", počkejte několik sekund a uvidíte MagicLED v práci :-)
Několik programů na ukázku:
Kliknutím na obrázek zobrazíte videoukázku:
DUHA
duha - běžící světlo pomalá duha
DUHA 1
duha1 - běžící světlo rychlá duha
MAJÁK
majak - běžící světlo každá desátá dioda
RUNNING
running - běžící světlo jedna dioda jedním směrem
RUNNING BACK
running_back - běžící světlo jedna dioda tam a zpět
RUNNING BACK 7
running_back_7 - běžící světlo tam a zpět 7 diod se snižujícím se jasem
UTÍKEJ
utikej - běžící světlo každá druhá dioda
VYMALUJ
vymaluj - běžící světlo postupné zaplnění pásku různými barvami