
Článek o typech adresních pásek, různých čipech, rozdílu mezi nimi. V tomto článku se podíváme na otázky jako:
- Rozdíl mezi běžnou a adresní páskou.
- Rozdíl mezi čipy WS2812b a WS2811
- Rozdíl mezi čipy WS2812, WS2813, WS2815 a WS2818
- Princip činnosti adresovatelného LED pásku
- Jak připojit adresovatelný LED pásek k Arduinu?
1. Něco málo o běžné RGB pásce.
RGB (červený, zelený, modrý) pásek je vícebarevný LED pásek se čtyřmi kontakty: R, G, B a +. K ovládání této pásky se používá ovladač, který „rozhoduje“, jaké napětí má být aplikováno na který kanál v závislosti na zvolené barvě. Pokud například dodává energii rovnoměrně do „modrého“ a „zeleného“ kanálu, měli bychom vidět žlutou. V zásadě jsou RGB pásky vyrobeny na bázi diod 2835 a 5050. SMD 2835 je však pouze simulací RGB, ve které se střídají červené, modré a zelené diody a získává se prý RGB. Navenek velmi připomíná obyčejnou girlandu (viz obrázek níže).

Páska RGB 2835

5050 při zapnutí „bílého“ režimu.
Páska SMD 5050 je modernější. Uvnitř každé diody jsou kombinovány červené, zelené a modré krystaly. Ovladač dodává více či méně napětí do odpovídajícího kanálu v závislosti na příkazu a v důsledku toho mohou diody svítit nejen červeno-modro-zeleně, ale také jejich směs: růžová, oranžová, fialová atd.
2. Rozdíl mezi běžnou a adresní páskou.
Pokud je páska 5050 tak moderní, proč potřebujeme adresní pásky? Hlavním problémem konvenční pásky je, že všechny její diody reagují stejně na signály ovladače. Vybrali jsme oranžovou – ovladač napájel odpovídající kanály a celý pásek začal svítit oranžově. Zvolili jsme červenou – celá páska se rozsvítila červeně atp. Nebudou zde žádné efekty „cestovní vlny“, ekvalizér ani různé barvy po sobě.
Adresový zdroj tento problém řeší. Je považována za „chytrou“, protože. ovládá se nejen změnou napětí na kontaktech. Má nainstalovaný vlastní mikrokontrolér pro každou LED (například čip ws2812b). To vám umožní použít řadič nebo desku Arduino k odeslání samostatného příkazu každé diodě, nastavení její barvy a jasu. Nakonec můžete vytvořit velmi zajímavé efekty, celé světelné show a dokonce i svou vlastní obrazovku!
3. Jaký je rozdíl mezi WS2811 a WS2812
Jaký je rozdíl mezi adresním pásem WS2811 a WS2812b a který z nich je lepší? Zkusme na to přijít. Vizuálně lze WS2811 odlišit od WS2812 podle velikosti samotného čipu (viz foto níže). U pásku WS2811 je tento čip velký, skoro jako samotná dioda a je umístěn po třech LED. Páskový čip WS2812b je malý, sotva viditelný a vypadá jako černá tečka na diodě. V každé LED je instalován čip ws2812b (to znamená, že jejich počet je třikrát větší než na pásku WS2811, ale k tomu se vrátíme později).

Napětí: Jak je uvedeno výše, páska WS2812 má provozní napětí 5 voltů a páska WS2811 má provozní napětí 12 voltů. Pokud jde o připojení, 12V je pohodlnější a jednodušší (snazší je najít zdroje), ale provozní napětí 5V je ideální pro práci s Arduinem.
Frekvence ovládání: U pásku WS2811 se jeden pixel rovná třem diodám, což znamená, že jsou ovládány tři diody najednou. Tím se animace rozmaže a stane se trhanější. Pokud je však pozorovatel v určité vzdálenosti (například ne blíže než několik metrů), pak rozdíl prakticky není vidět. Na rozdíl od WS2811 ovládá WS2812 každou diodu samostatně, což vypadá lépe zejména zblízka.
Řezný poměr: Páska WS2812b je řezána v násobcích jedné diody a WS2811 – v násobcích tří. To přímo souvisí s frekvencí ovládání.
Rychlost signálu: Čip WS2812b reaguje na příkazy několikrát rychleji, díky čemuž je animace plynulejší. To je zvláště důležité, když je páska interaktivní (například se používá pro barevnou hudbu nebo pro dotykový stůl, jako je kanál Dashing Axe).
Cena: Nejdražší částí adresní pásky je její mikrokontrolér (čip). V případě WS2811 je pro provoz 1 metru pásky s 60 diodami na metr zapotřebí 20 čipů (1 na každé 3 diody) a v případě WS2812b 60 čipů (1 dioda = 1 čip) . Výsledkem je, že WS2812b je na metr dražší než WS2811. Je pozoruhodné, že pokud vezmete v úvahu cenu za 1 čip, ukáže se, že WS2812b je ještě levnější než jeho předchůdce.

Ws2811 (vlevo) a ws2812b (vpravo).
Vzhledem ke své nízké ceně je páska WS2811 12v stále často instalována v klubech, na fasádách budov a pódiích pro velké světelné show. Pokud je však pro vás důležitá větší přehlednost animace nebo je vzdálenost od pásky k pozorovateli malá, pak je lepší použít pokročilejší model WS2812B.
4. Rozdíl mezi WS2812b, WS2813, WS2815 a WS2818
Přestože je WS2812b jedním z nejoblíbenějších adresních pásků na trhu, má dvě významné nevýhody: nízké napětí и jeden datový kanál (jeden datový kanál pro pásku WS2811). Napětí 5V je velmi nepohodlné, když potřebujete připojit více než 5 – 10 metrů. To je způsobeno poklesem již tak nízkého napětí. Jeden datový kanál DAT znamená, že pokud je tento kanál poškozen na jakékoli části pásky, bude odpojena celá další linka. To znamená, že pokud například udeříte kladivem do LED WS2812b (i když proč to dělat?), tak celý pásek za touto diodou zhasne.
Na rozdíl od WS2812b má WS2813 dva datové kanály: hlavní a doplňkový a jsou duplikovány v každé diodě. To znamená, že pokud je jedna dioda poškozena, další budou nadále fungovat. Díky tomu je páska s adresou WS2813 spolehlivější, což je velmi důležité, pokud pro vás v případě problémů nebude snadné pásku získat a opravit/vyměnit. Například, když je páska namontována do zavěšeného stropu. WS2813 se také může pochlubit ještě rychlejším přenosem dat. Páska WS2813 má však v některých případech stále stejné „nepohodlné“ napětí 5V.
Adresní páska WS2815 je jednou z nejmodernějších na trhu, její provozní napětí je 12V a je zde přídavný datový kanál. Řeší tedy oba hlavní problémy WS2812b. Snadno se instaluje a téměř nikdy se nerozbije.
Vzhledem ke své vysoké ceně se však WS2815 používá hlavně pro komerční projekty, kde je důležitá stabilita a kde je potřeba k lince připojit hodně pásky.
Čip WS2818 také pracuje na 12V a má další datový kanál. Kromě toho je adresní páska WS2818 levnější než WS2813 nebo WS2815. Jeho hlavní chybou je, že se ovládá v násobcích tří diod (jako WS2811). Tím se zužuje potenciální rozsah použití. Páska WS2818 se obvykle používá venku nebo tam, kde pozorovatel nebude blízko pásky (protože animace vypadá více „rozmazaně“). Proto nižší náklady: méně čipů – levnější páska.
5. Princip činnosti adresovatelného LED pásku
Adresní páska je rozdělena na segmenty po jednom pixelu (čipu), z nichž každý má kondenzátor, který zvyšuje odolnost proti šumu. Všechny LED jsou napájeny ze sítě paralelně, to znamená, že každá sekce má své vlastní +5V/+12V, přičemž přenos dat probíhá sekvenčně, z jedné sekce do druhé. To je důvod, proč, jak je uvedeno výše, pokud jedna LED adresního proužku ws2811 a ws2812b selže, všechny následující přestanou fungovat.
Další důležitou vlastností adresní pásky je, že není možné kontrolovat její výkon na místě bez ovladače. Bez příkazu čip diodu nerozsvítí, i když připojíte napájení. Zde jsou dvě možnosti: buď si kazetu ihned objednáte s ovladačem, nebo si ji přijďte zkontrolovat svým vlastním. Závady na této pásce jsou však extrémně vzácné (méně než 1 z 1000 metrů) a v případě závad náš obchod pásku bez problémů vymění (recenze na takové případy najdete jak na našem webu, tak na jiných stránkách ). Typicky je adresní páska řízena pomocí hotových řadičů, na kterých je program napsán nebo pomocí desek Arduino, Wemos atd.

Jak můžete vidět na fotografii výše, adresní páska má směr, tedy začátek (DIN, +5V/+12V, GND) a konec (DO, +5V/+12V, GND). Směr je indikován šipkami pro snazší navigaci. Je nutné připojit začátek pásky (na straně, odkud přichází šipka), tedy DIN, jinak páska nebude fungovat. Konektor na straně DO (výstup dat) slouží k připojení dalšího kusu pásky. Přídavný datový kanál pro pásku WS2813, WS2815, WS2818 není nutné připojovat k řadiči, nebude to mít vliv na výkon (od první diody budou data duplikována na obou datových kanálech).

6. Připojení adresovatelného LED pásku k Arduinu.
Arduino je deska s mikrokontrolérem, která umožňuje ovládat LED diody v závislosti na programu, který je do ní nahrán. Obvykle se pro práci s Arduinem používá 5V páska, to znamená WS2812b nebo WS2813.
- +5V a GND jsou zapojeny paralelně k napájení a k Arduinu a pin DIN je připojen přes rezistor k Arduinu. Odpor odporu by měl být 100-500 ohmů.
- Je lepší vzít dráty pro připojení pásky o průřezu 1.5 čtverečních nebo větším. Je to způsobeno poklesem napětí, který je velmi patrný při práci s nízkonapěťovým zařízením. To platí zejména, pokud je vaše vzdálenost od bloku k pásce a ovladači větší než metr. Čím delší vzdálenost, tím silnější dráty jsou potřeba.
- K arduino ovladači/desce je nutné připojit nejen datový pin DIN, ale také pin GND. Jinak páska nebude fungovat.
- Pokud máte na lince více než pět metrů pásky, doporučuje se napájet ji přímo ze zdroje. To je způsobeno stejným poklesem napětí. Naštěstí jsou na začátku pásku vždy dva další napájecí kontakty. (viz bílý a modrý drát na fotografii výše)
Nejoblíbenějšími knihovnami pro práci s adresními proužky jsou FastLED a Adafruit NeoPixel, které mají již hotové skici a na jejich základě lze vytvářet i světelné efekty. Pro úspěšnou kreativitu je důležité zapamatovat si dva parametry: NUM_LEDS – počet LED v pásku a PIN – číslo portu pro přenos dat (na který jsme připojili pin DIN). V Adafruitu to vypadá takto:

Adresovatelné LED pásky jsou dražší než běžné LED pásky, proto se nejčastěji instalují tam, kde běžné osvětlení nezvládne.
• Lampy ovládané podle principu měkkých světel, což doslova znamená „měkké světlo“. Jedná se o plynulý přechod z barvy do barvy nebo mezi režimy jasu.
• Dekorativní osvětlení. Jasné, syté adresovatelné LED pásky vytvářejí nejen potřebné osvětlení, ale slouží také jako dynamické osvětlení například do rytmu hudby nebo jednoduše v určitém určeném režimu.
To jsou jen hlavní oblasti použití. Adresovatelný LED pásek je také široce používán v domácnosti: jako osvětlení pro auta, akvária, novoroční dekorace a design místností. Pokud plánujete realizovat projekt s adresní páskou, pak v našem obchodě můžete zakoupit ws2812b, ws2813, ws2815 a další typy adresní pásky!

Toto je náš dnešní třetí článek. V předchozích článcích jsme již probrali, co je to adresní proužek, a zhruba pochopili, jak funguje. Povídali jsme si také o desce Arduino Nano, pomocí které ovládáme pásku, nainstalovali jsme potřebný software a dokonce jsme napsali náš první program. Nyní je čas vše propojit a udělat jednoduchou světelnou animaci.
Nejprve musíte pochopit spotřebu LED pásku. Faktem je, že každá LED dioda v pixelu spotřebuje až 20 mA v závislosti na jasu její záře. Připomínám, že jas záře si nastavujeme sami z programu. Celkově se ukazuje, že každý pixel může spotřebovat až 60 mA. To je poměrně hodně, vezmeme-li v úvahu, že můžeme použít několik metrů pásky. Ale pro účely tohoto článku budu experimentovat s 5 pixelovým segmentem. A z tohoto důvodu budu napájet adresní pás přímo z Arduino Nano. I když bych to sám nedoporučoval dělat, nejlepší je nainstalovat samostatný zdroj a připojit k němu pásku a implementovat pouze ovládání pomocí MK.
Jak si pamatujeme z předchozích článků, ovládání bude probíhat kterýmkoli z digitálních výstupů od D 2 do D 13. V tomto případě jsem se rozhodl pro D 5 (jen pro příklad můžete použít jakýkoli). Takže připojíme pásku k Arduino Nano. GND na GND, +5 V až +5 V a D – vstup na D 5 na desce Nano. Na nic jsem nepřišel a jen to připájel. Vizuálně vypadá adresní pás připojený k Arduinu takto:
A zde je schéma připojení adresní pásky k Arduinu:

Zde je třeba pamatovat především na to, že adresovatelný LED pásek má směr a je důležité nezaměnit, ke kterému konci pásku desku Arduino připojit. Ale o tom jsem již mluvil v předchozích článcích a nebudeme se tomu více věnovat.
Dalším krokem je připojení desky Adruino k počítači a zahájení psaní našeho prvního programu pro adresovatelný LED pásek.
Píšeme program pro ovládání adresovatelného LED pásku přes Arduino. Instalace knihovny
Poprvé je to vždy velmi vzrušující. Napoprvé můžete udělat spoustu chyb a později si uvědomíte, že je těžké tyto chyby vymýšlet záměrně, natožpak je udělat náhodou, a to platí nejen pro programování. Ale to je důvod, proč píšu tento článek, aby byla cesta od nápadu k výsledku co nejjednodušší. Nyní dostatečně podrobně popíšu vše, co budu dělat. To pomůže vytvořit jasnou představu v hlavě začátečníka o připojení Arduina.
Nejprve otevřeme Arduino IDE. Toto je program, který jsme nainstalovali v jednom z předchozích článků.
Stalo? Skvělý! Dále musíme nainstalovat knihovnu. To je potřeba ke správě zdroje adres. Faktem je, že páska přijímá určitou sadu příkazů, ale nás jako mladé vývojáře zatím nezajímá, co tyto příkazy jsou a jak fungují. Chceme jen ovládat barvy. A knihovna pro správu adresních pásek nám to pomůže udělat co nejjednodušeji a nejrychleji. Řekneme programu, kde chceme vidět jakou barvu, a program pomocí knihovny vygeneruje sady příkazů, které jsou srozumitelné pro čipy adresního pruhu. Ve skutečnosti je vše docela jednoduché a zřejmé, stačí si na to zvyknout. Klikněte proto na „Sketch“ -> „Connect Library“ -> „Manage Libraries“.

Poté se objeví okno „Správce knihovny“. Mimochodem, toto okno se načte trochu času, takže nebude několik sekund aktivní, musíte počkat.
Prozatím budeme používat knihovnu „Adafruit NeoPixel“. Nejjednodušší způsob by bylo použít vyhledávání. Jak vidíte, v seznamu jsou podobná jména, je třeba dávat pozor, abyste je nezaměnili.

Dalším krokem je instalace knihovny, k tomu je odpovídající tlačítko. Klikneme a čekáme. Po dokončení instalace tlačítko „Instalovat“ zmizí, ale zobrazí se rozevírací seznam, který vám umožní vybrat verzi. Prozatím nebudeme nic měnit a jen zavřeme okno.

Píšeme program pro ovládání pásku přes Arduino
A nyní přistoupíme k další fázi – psaní programu. Začněme něčím jednoduchým a pak to postupně vylepšujeme. Náš první program bude vypadat takto:
#define LED_COUNT 5
#define LED_PIN 5
Pásek Adafruit_NeoPixel = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
strip.begin(); //Inicializovat zdroj.
strip.setPixelColor(i, strip.Color(255, 0, 0)); // Červená barva.
strip.setPixelColor(i, strip.Color(0, 0, 0)); // nula
Na první pohled se to může zdát trochu matoucí. Nyní si kód projdeme a příkazy, které používáme, budou dávat smysl.
Začněme od prvního řádku. Zde vyhlašujeme knihovnu. Faktem je, že předtím jsme si to jen stáhli, a abychom to mohli použít v programu, musíme to deklarovat. K tomu použijte direktivu #include <>. Kde v závorkách je název souboru, který bude použit při kompilaci jako součást kódu. V našem případě se jedná o název knihovny. Mimochodem, ano, knihovna je soubor s programem.
Druhý a třetí řádek – zde nastavujeme počet pixelů v našem feedu a číslo výstupu, ze kterého bude kontrola organizována.
Vezměte prosím na vědomí: mluvíme konkrétně o počtu pixelů, tedy čipů v proužku, a ne o počtu LED. U některých adresovatelných pásek, například u čipů ws2811 a ws2818, probíhá ovládání v násobcích 3 diod, takže páska s 60 diodami na metr bude řízena pouze 20 pixely. Pokud máte adresní pásku ws2812b, ws2813 nebo ws2815, pak ovládání probíhá v násobcích jedné diody, tedy počet pixelů = počet LED.
Pokračujme. Direktiva #define definuje identifikátor a sekvenci znaků, které budou použity k nahrazení tohoto identifikátoru, když je detekován v kódu. Podívejme se na druhý řádek podrobněji “#define LED_COUNT 5”. “LED_COUNT” je identifikátor, který odpovídá znaku “5”. To nám umožní zapsat „5“ do těla programu (kdekoli potřebujeme), napsat „LED_COUNT“. Může to znít trochu trapně, ale přemýšlejte o tom: přišli jsme s nápadem změnit počet pixelů ve zdroji a pak bychom museli změnit počet pixelů v celém kódu. Ale díky #definujte jsme schopni změnit pouze posloupnost znaků v identifikátoru. Je jasné, že v našem programu je možné nahradit všechny hodnoty, protože existují pouze 2 tucty řádků. Existují však také velmi rozsáhlé programy, kde náhradní akce budou vyžadovat obrovské množství času a trpělivosti.
Na pátém řádku deklarujeme instanci třídy Adafruit_NeoPixel a předáme hodnoty jejího konstruktoru o délce pásky, ovládacím kolíku a typu adresní pásky. V tomto článku nebudeme zkoumat samotný koncept tříd, proto navrhuji jednoduše vzít za samozřejmost tento řádek, kde předáme potřebné parametry v závorce. Dovolte mi říci jednu věc: zde jsme vytvořili objekt nazvaný „strip“. A tento objekt je plně zodpovědný za provoz připojené pásky.
V těle funkce setup() říkáme kompilátoru, že bude použit tento „strip“ objekt. Ve skutečnosti by tento inicializační příkaz měl být také prozatím přijímán jako naprosté minimum.
A pak tu máme tu nejzajímavější část – hlavní část programu, kde se kouzlo děje, nachází se v těle funkce loop (). Ještě předtím je ale nutné zavést nový pojem – cyklus.
Cyklus je určitý blok programu, který se provádí v kruhu. I samotná funkce loop() je smyčka. Smyčky mohou být konečné nebo nekonečné a smyčky, stejně jako funkce, mají tělo, kde se zapisují opakující se příkazy. V tomto programu jsme použili cyklus for. Pokud je tento cyklus popsán správně, pak je zpravidla konečný. Smyčka for má 3 parametry „for(int i = 0; i < LED_COUNT; i++)< >“. První parametr určuje počáteční hodnotu proměnné i. Mimochodem, v tomto případě je proměnná i inicializována, když smyčka začíná, a je zapomenuta, když smyčka končí. Druhým parametrem je podmínka, za které se smyčka dále vykonává. V našem případě smyčka běží, dokud i není menší než 5. A třetí parametr přidává jedničku k i pokaždé, když se smyčka opakuje. Prozatím se omezíme na toto krátké vysvětlení. V budoucnu zveřejním krátký článek o programování.
Vraťme se tedy k programu. Od 13. do 17. řádku máme cyklus, cyklus 5 opakování, kde se i mění z 0 na 4 včetně.
Na řádku 14 zavoláme metodu setPixel objektu strip a předáme jí dva parametry. Kde i je číslo pixelu na proužku adresy a „ s trip.Color(255, 0, 0)“ je jeho barva. O tom, jak se barva nastavuje pomocí systému RGB, jsme si již řekli. Řeknu jen samozřejmou věc, „255, 0, 0“ je maximální červená barva.
Ukázalo se, že když jsme deklarovali objekt strip a řekli mu, že v našem adresním pruhu bude 5 pixelů, pak bylo v paměti vyhrazeno 5 buněk pro uložení barvy. A nyní v tomto cyklu je vyplňujeme.
15. řádek obsahuje příkaz, který zobrazuje barvy z paměti v MK (mikrokontroléru) na pásku. To znamená, že posloupnost je následující: nejprve zapíšeme barvy do paměti, poté je ihned zobrazíme na adresní pásce. Zpočátku, zatímco se nám ještě nepodařilo zaplnit paměť, jsou tam uloženy nulové barvy „0, 0, 0“.
A v řádku 16 máme zpoždění 300 ml.
Ukazuje se, že zpočátku máme 5 paměťových buněk, kde jsou zaznamenány pouze nulové barvy. Potom se v cyklu zapíše červená do každé buňky, výstup na pásku a dojde k mírnému zpoždění.
Nyní se podívejme na řádky kódu od 18 do 23. Tady se děje téměř to samé. Ve stejném cyklu resetujeme barvy, pouze k tomu dojde bez jakéhokoli zpoždění. A data dorazí na adresní pásku po dokončení celého cyklu, tedy po resetování všech barev. A poté používáme zpoždění.
Podle mého názoru je vše docela jednoduché. Diody se střídavě rozsvěcují červeně a pak zhasínají a to vše se děje v kruhu. Výsledek spuštění programu můžete vidět níže.
V tomto článku jsme napsali náš první program pro správu adresní pásky. Nyní si to můžete zopakovat sami. Můžete také použít nejen červenou, ale také sami experimentovat s paletou a složitějšími barvami. A v následujících článcích budeme úkol postupně komplikovat.
















