V mém článku “Arduino – chytré vánoční LED svíčky s WS2812B” jsem psal o svém prvním pokusu o výrobu osvětlení na vánoční stromeček, kde jsem využil Arduino a inteligentní RGB LED diody. Jelikož osvětlení stromečku sklidilo v rodinném kruhu úspěch, byl jsem dotázán, jestli by něco takového nešlo i na vyzdobení domu (“Tatííí, všichni mají na baráku světýlka, proč my ne?”, tuším takto nějak ten dotaz zněl 🙂 ). Dnešní článek bude tedy takovým volným pokračováním o vánocích a WS2812B (neopixel).
Původně jsem si u této příležitosti chtěl vyzkoušet zapojení jen s holým obvodem atmega328 a podpůrnými součástkami, ale vzhledem k tomu, že celé Arduino Nano stojí na Ebay jen o cca 20kč víc než samotný obvod atmega328, vykašlal jsem se na nějaké šmudlání něčeho, co můžu mít bez práce za pár korun, včetně USB/serial převodníku, takže můj druhý výtvor se v základu skládá ze stejných součástí jako verze Lite, o které jsem psal v minulém článku. Použil jsem i stejnou, na 3D tiskárně vytisknutou krabičku, která se osvědčila. Narozdíl od “indoor” verze řetězu jsem zde použil plochý třížilový kabel (průřez 22AWG) k propojení jednotlivých neopixelů, kterých je celkem 80 kusů, v rozestupu 15cm, tak abych získal délku řetězu 12 metrů. Firmware zůstal stejný, pouze jsem přidal pár dalších efektů, jelikož jsem objevil podpůrné třídy obsažené v knihovně FastLED, pomocí nichž se s pixely snadno pracuje.
První verze byla napájená 5V zdrojem, ale protože se mi začaly hromadit 12V zdroje, tak abych je nějak využil, uvažoval jsem přidat do napájení stabilizátor LM317 a napájet to celé 12V zdrojem. Po několika pokusech jsem se nakonec rozhodl použít raději můj oblíbený DC-DC měnič mini360, nastavený na výstupní napětí cca 5,13V (maximální napájecí napětí WS2812B je 5,3V), protože narozdíl od LM317 neprodukuje žádné teplo, takže není zapotřebí ho chladit. Napájím tedy 12V/1A zdrojem. Celý řetěz si vezme necelých 600mA, toto je maximum v případě, že svítí všech 80 pixelů bílou barvou.
Jak už jsem psal v předchozím článku na konci, pájení jednotlivých SMD pixelů na mě zanechalo dlouhodobé psychické následky 🙂 , takže jsem se snažil najít nějaké elegantnější řešení nebo alespoň najít WS2812B v nějakém rozumnějším pouzdře. Nakonec jsem na Ebay našel WS2812B už připájený spolu s kondenzátorem na malém plošném spoji, který má každé strany 3 plošky pro připájení vodičů.
K pájení neopixelů jsem si vyrobil a na 3D tiskárně vytiskl přípravek se dvěma malými neodymovými magnety ze staré DVD mechaniky, do kterého jsem umístil neopixel, přiložil odizolovaný plochý kabel a přípravek zavřel, tak aby kabel držel hezky na svém místě a jeden po druhém připájel. Pájení bylo díky tomuto přípravku velice snadné a rychlé. Mimochodem, po spájení celého řetězu jsem pak na Ebay našel i “prewired” pixely, tedy hotový spájený řetěz 🙂
Poslední věcí bylo už jen nějakým vhodným způsobem ochránit neopixely před mechanickým poškozením a hlavně před nepřízní počasí. K tomu jsem použil transparentní smrštitelnou bužírku, do které jsem jednotlivé neopixely zafouknul a nakonec jsem oba konce bužírky zalil lepidlem z tavné pistole a to až k samotnému pixelu.
Z důvodu snadnější manipulace při umisťování řetězu kamkoliv jsem se rozhodl, že řetěz s neopixely udělám oddělitelný od krabičky s arduinem. Původně jsem uvažoval o svorkovnici, ale jelikož jsem chtěl, aby instalaci zvládla manželka nebo děti, zvolil jsem k připojení čtyřpinový mini XLR konektor, kterých se mi v šuplíku už dlouho válelo několik a nemohl jsem si vzpomenout, kvůli čemu jsem je kupoval 🙂
A to je celé. Už zbývá jen hezky počkat těch pár týdnů do vánoc. Teď tak přemýšlím, jestli bych si neměl opatřit skládací lehátko, na které bych se na vánoce před barákem mohl vyvalit, abych z těch světýlek taky něco měl 😉
Na závěr ještě malá ochutnávka, jak to celé vypadá v pohybu:
Ahoj chci si taky podle tebe tento řetěz vyrobit. Proto bych tě rád požádal o KÓD na ten bych byl asi krátký 🙂
Čau. Kód je stejný jako pro verzi lite v prvním dílu a je ke stažení na konci toho článku, nebo přímo odsud: http://www.adminek.cz/wp-content/uploads/2016/07/retez_lite.zip
Ahoj, prosím o radu na programování jsem levej. Stáhnul jsem si Tvůj kod na řetěz a při kontrole v arduinu to hlásí chybu na retez_lite:39: error: ‘rainbow’ was not declared in this scope.
Chyba se objevuje při kompilaci v novějších verzích ArduinoIDE. Tento sketch jsem psal ve verzi 1.0.5, která s tím neměla problém. Udělal jsem reupload opraveného zdrojového kódu, tak aby to šlo zkompilovat – vyzkoušeno teď ve verzi 1.8.2 a je to ok. Zároveň Ti ho pošlu mejlem.
Dobrý den. Poprosím Vás o zaslání upraveného kódu na novou verzi IDE, hlásí mi to stejnou chybu, jako u tazatele Pavla. Jinak pěkně sepsaný článek.
Ahoj, ke stažení v článku je už nová verze.
Ahoj, řetěz funguje skvěle, efekty má pěkné. Dobrá práce.
Neuvažoval by jsi o naprogramování osvětlení jednotlivých schodů na schodišti podobným řetězem
ovládané 2 tlačítky (u horního a dolního schodu, úrovní H). Díky.
Ahoj, asi trochu nerozumím. Můžeš to prosím trochu rozvést?
Ahoj, byla by možnost původní plné verze s BT? Jak soft tak i schéma zapojení.