Címezhető RGB LED-ek
Az RGB LED-ek vezérlése 3 analógjelet igényel. Nyilván ez nagyszámú LED esetén már nem megvalósítható, így ezt a feladatot decentralizálni kell. A Daisy Chain rendszerben egymás után felfűzött modulokon, minden LED mellett található egy vezérlőegység, mely négy feladatot hajt rögtön végre:
- Fogadja a vezérlőegységtől, vagy az előző LED-től érkező jelsort, ebből leválasztja/kiválasztja a rá vonatkozó részt
- Továbbadja a jelsort a következő LED felé
- Dekódolja a jellemzően 3 byte-nyi színkombináció információt (1 byte / szín), összesen 16,8 millió színárnyalat
- Vezérli a LED-et (digitális / PWM konverzió).
A jelátvitel hasonlít egy szabványos UART interfészhez, de nem az. Ez a kommunikáció rendkívül időspecifikus, a jelkódolás gyakorlatilag a jeltartási időkön keresztül történik:
Az adatok 24 bites „csomagokban” érkeznek az egységekhez, az adatsorokat egy 50μs „reset” zárja. Minden egység levágja a saját adatsorát a telegrammból, és a „maradék-részt” továbbítja csak:
A WS2812 „egységenként csökkenő” telegrammja
Nyilván a lenti megoldások némileg eltérnek egymástól. Jelenleg az ár / érték arányban a WS2812 sorozat áll nyerésre.
WS2811
A WS2811 címezhető LED rendszer a WS2801 megoldás továbbfejlesztett változata. Az ott alkalmazott, de lassúnak bizonyult SPI kommunikációt leegyszerűsítették egy speciális, időzítés alapú soros protokollra. Az átvitel 400 vagy 800 kHz-en történik. A WS2801 az átvitelhez 2 adatvezetéket használ, míg a WS2811-nek egy is elegendő. Minden LED mellett található egy címezhető WS2811 IC, mely egyrészt az adatvezeékről érkező színkombinációt tárolja, másrészt vezérli az RGB LED-et.
A WS2811 és WS2812 sorozat közötti különbségek
- A WS2811 külön tartalmazza az IC-t és a LED-et, míg a WS2812-ben integrálásra került a két rész
- A WS2811 maximális feszültsége 7V, míg a WS2812 esetén ez 5,3V
- A WS2812 a 11 továbbfejlesztett változata, az IC-k szoftverén is javítottak
WS2812
A WS2812 egy 5050-es SMD LED panelbe ágyazott WS2811 chip. Minden WS2812 „tudja” a 800 kHz-es jelátvitelt, így ezeknél ezt érdemes alkalmazni.
WS2812 specifikáció
- LED: RGB SMD LED 5050
- Színárnyalatok: 256
- Üzemi feszültség: 5V
- Teljesítmény LED-enként: 0.3W +/- 0.01%
WS2812 portjai
- 5V: ez a szabályzott feszültség maradjon 5 és 7V között. Alacsonyabb feszültségszintnél csökken a fényerő, 7V-nél magasabbnál pedig sérülhetnek a modulok
- GND: 0V. Az első modul és az Arduino közé a gnd és az 5v közé érdemes egy 100µF - 1000µF közötti kondenzátort beiktatni
- DI: a vezérlő vagy az előző modul felől érkező jelvezeték. Az első modul és az Arduino közé az adatvonalon is érdemes egy 220 - 470 Ω közötti ellenállást beépíteni.
- DO: a következő modul felé a jelvezeték. Utolsó modul esetén egyszerűen szabadon kell hagyni.
WS2812 bekötése
- A modulokat egymással össze kell kötni, egyszerűen: gnd↔gnd, 5v↔5v, do↔di, a címzés az összekötés sorrendjében fog működni
- Az első modul és az Arduino közé a gnd és az 5v közé érdemes egy 100µF - 1000µF közötti kondenzátort beiktatni
- Az első modul és az Arduino közé az adatvonalon is érdemes egy 220 - 470 Ω közötti ellenállást beépíteni
- Az Arduno Pin 4-et össze kell kötni az első modul DI-jével. (nyilván, ha a Pin 4 nem megy, a kódot kell hozzápasszitani a változáshoz).
A fenti példán a Sparkfun WS2812 moduljainak az Arduino-hoz kötése látható
WS2812 könyvtár / szoftver
Az Adafruit Neopixel könyvtár innen tölthető le: https://github.com/adafruit/Adafruit_NeoPixel
Az Adafruit Neopixel példaprogramok: https://github.com/adafruit/Adafruit_NeoPixel/tree/master/examples
A letöltött programokban a pin számát és az összekötött LED modulok számát is meg kell adni.
Forrás: https://learn.sparkfun.com/tutorials/ws2812-breakout-hookup-guide
WS2801
Ez a „klasszikus” megoldás a címezhető LED-ekre. Ez még SPI kommunikációt alkalmazott, az órajelet PWM-mel állította elő és RGB csatornálat tartlamazott, az alegységeket (kvázi az RGB LED-eket) Daisy Chain rendszerben fűzte össze. Ugyanennek a megoldásnak az LPD8806 egy szabadalmaztatott és rendkívül rosszul dokumnetált változata, melyet az Adafruit integrált a rendszerébe.
Mindkét megoldás viszonylag bonyolult és lassabb, mint a WS2811/WS2812.