.
X    

Kontrolér adresovatelných LED pásků a řetězů


Tento kontrolér je použitelný pro řízení adresovatelných LED pásků a řetězů (s RGB LED typu WS2812, WS2812B a obdobnými, u kterých mají jednotlivá LED pouzdra v sobě čip, který je schopný individuálně řídit pomocí PWM jednotlivé barvy R/G/B a posílat data do dalších adresovatelných LED, případně pro řetězy s WS2811, WS2812 a ekvivalentnímy čipy) s délkou 5 až 60 RGB LED. Lze zvolit několik provozních režimů, z toho některé jsou ovládané zvukem. Srdcem tohoto obvodu je mikrořadič ATtiny85.

Hotové zařízení, připojený řetěz
Hotové zařízení, připojený řetěz (klikněte pro plné rozlišení)


1. Popis - hardware

Schéma zapojení
Schéma zapojení (klikněte pro plné rozlišení)

Obvod je postaven na bázi mikrořadiče ATtiny85 (U1). Ve schématu není zakreslen programovací konektor, mikrořadič byl programován pomocí nacvakávacího klipsu, později byl do hotové konstrukce přidán pomocí drátků konektor pro pogo piny. Pro usnadnění práce je možné programovací konektor přidat (na piny MISO, MOSI, SCK, RST, VCC, GND dle datasheetu ATtiny85 a pinoutu běžného AVR ISP konektoru). Blízko napájecích pinů ATtiny85 je umístěn kondenzátor C5 (100 nF).

Data do LED pásku jsou vyvedena z pinu 5 (PB0) přes rezistor R5 (120 Ω), který zajišťuje ochranu proti zkratu a omezení EMI (v případě potřeby dalšího snížení vyzařování lze přidat malý kondenzátor proti zemi). Dvojitá dioda D3 funguje jako ochrana proti ESD a musí být umístěna blízko kondenzátoru C5. LED pásek/řetěz je připojen ke konektoru J1, blízko kterého je na napájení a zem umístěn keramický kondenzátor. Konektor J1 je klasická 5,08 mm šroubovací svorkovnice do DPS.

Napájení (5 V) je připojeno na konektor J2. Opět se jedná o stejný typ svorkovnice, ale se dvěma piny. Kondenzátory C4 (10 µF keramický) a C7 (100 µF elektrolytický) filtrují napájecí napětí. Elektrolytický kondenzátor je přidán pro omezení napěťové špičky při připojení k už zapnutému zdroji, díky svému ESR slouží pro zatlumení rezonance indukčnosti napájecího kabelu se vstupním keramickým kondenzátorem a s keramickými kondenzátory na pásku (bez C7 a bez transilu docházelo s 1 m dlouhým kabelem při připojení ke zdroji s větší výstupní kapacitou k překmitu až o 60-70 %, v této variantě okolo 5-10 % - jedná se o obecný problém s velkými keramickými/fóliovými kondenzátory, či kondenzátory s extrémně nízkým ESR obecně, na vstupu zařízení). Vstup je chráněn proti přechodnému přepětí transilem SMAJ5.0A (D2). Na desce není zahrnuta nadproudová ochrana, doporučuji přidat pojistku, či používat pouze zdroj s nadproudovou ochranou.

Pro přepínání režimů slouží tlačítka SW1, SW2. V případě jejich neosazení lze připojit tlačítka externě (J3). Pokud jsou vodivé části tlačítek dostupné dotyku či blízko, je vhodné přidat paralelně ochranu proti ESD (například CESDBLC5V0AP či jakoukoliv podobnou, případně alespoň Zenerovy diody okolo 8,2 V paralelně k tlačítkům, s anodou na zemi).

Pro odrušení napětí vedoucího do obvodu mikrofonu slouží obvod složený z komponent R1, R3, C2, D1, Q1. Tranzistor Q1 slouží pro proudové posílení, aby šla použít menší kapacita a větší odpor. Rezistor R1 omezuje nabíjecí proud, dvojitá dioda D1 nabití/vybití kondenzátoru C2, pokud je napájení o více než cca 0,6 V odlišné od napětí na C2. Rezistor R3 a kondenzátor C2 tvoří RC dolní propust (lowpass filtr) se zlomovou frekvencí (pro -3 dB) okolo 0,13 Hz. Elektretový mikrofon MK1 je napájen přes rezistor R2 (10 kΩ). Dynamická impedance běžného elektretového mikrofonu je v řádu kΩ, budeme-li uvažovat impedanci mikrofonu a R2 jako převážně odporovou v žádaném rozsahu frekvencí a s hodnotou okolo 2 kΩ, spolu s kondenzátorem C1 tvoří opět dolní propust (-3 dB: 3,6 kHz). Filtr tvořený kondenzátorem C3 a rezistorem R4 (47 nF, 270 kΩ, -3 dB: 12,5 Hz) slouží k získání střední hodnoty napětí na mikrofonu. Pro snímání napětí na mikrofonu je použitý ADC převodník v diferenciálním módu, napětí je snímáno na mikrofonu na rezistoru R4 mezi jeho konci (uzly ADC+/ADC- vedoucí na piny PB3/PB4), kde je díky C3 (téměř) nulová stejnosměrná složka. ADC v ATtiny85 má zabudovaný zesilovač, který je zde použitý pro zesílení signálu z mikrofonu.

U návrhu desky plošných spojů je důležité, aby větší proudy LED pásku (pro 60 RGB LED a 20 mA/kanál až 3,6 A špičkově) netvořily napěťové úbytky na cestách k mikrofonu. Zem k citlivým obvodům (vedoucí k C1-3, MK1) lze vést odděleně od okolní země a spojit s "normální" zemí pouze v jednom bodě blízko U1/C5 - jinde než v tomto místě nebude tato zem spojena s tou okolní.

Návrh plošného spoje byl proveden v programu KiCad, původně ve verzi 5, poté importován do verze 7 kvůli přidání poznámek a exportu dat. Výstupní gerber data lze použít i pro výrobu dvojvrstvého plošného spoje, nicméně návrh DPS je určený primárně pro domácí výrobu na jedné vrstvě. Pouzdra pasivních součástek použité v návrhu plošného spoje jsou 0603.

Vlastní spotřeba obvodu je přibližně 10-15 mA. Provozní takt mikrořadiče je 16 MHz. Mikrořadič je taktován zabudovaným oscilátorem.


2. Popis - firmware/software

Program je napsaný v C a assembleru, kompilovaný pomocí avr-gcc v prostředí Code::Blocks. HEX soubor pro programování i zdrojový kód pod licencí BSD jsou dostupné ke stažení níže.

První tlačítko slouží ke změně režimu, druhé ke změně jasu (program bere v potaz logaritmické vnímání jasu lidským okem). Jas má 8 možných úrovní, program má 12 režimů provozu (efektů). Stisk a následné puštění provede příslušnou změnu jasu (přidání) či programu. Je-li zvolena poslední možnost, následující stisk vrátí první možnost. Pro udržování nastavení po vypnutí je použita paměť EEPROM.

Stisk obou tlačítek zároveň po dobu alespoň 2 s uloží současnou volbu jasu a efektu do EEPROM. Při dalších zapnutích bude načtena poslední uložená volba.

Zde je soupis efektů, první tři jsou řízené zvukem:

  1. VU metr s automatickým laděním rozsahu, zelené/červené barevné schéma
  2. VU metr s automatickým laděním rozsahu, duhové barevné schéma od červené zpět k červené
  3. VU metr s automatickým laděním rozsahu, duhové barevné schéma s měněním barvy v čase
  4. Bílá na všech LED
  5. Červená na všech LED
  6. Zelená na všech LED
  7. Modrá na všech LED
  8. Duhový barevný efekt na všech LED, rychle se měnící (posouvající) v čase
  9. Duhový barevný efekt na všech LED, pomalu se měnící (posouvající) v čase
  10. Duhový barevný efekt na všech LED, všechny barvy se opakují 3x, pomalu se měnící (posouvající) v čase
  11. Mihotající/třpytící se bílé světlo (náhodné plynulé rozsvěcení/zhasínání LED), rychlejší efekt
  12. Mihotající/třpytící se bílé světlo (náhodné plynulé rozsvěcení/zhasínání LED), pomalejší efekt

Pro získání náhodných čísel (efekty 11, 12) program využívá Xorshift algoritmus doplněný mezi iteracemi o skutečná náhodná data (LSb z některých vzorků vygenerovaných AD převodníkem).

Do režimu nastavení počtu LED a dalších parametrů se provede pomocí držení obou tlačítek před zapnutím zařízení:

  1. Držte obě tlačítka a zapněte napájení.
  2. Po pěti vteřinách blikne LED pásek - pusťte tlačítka.
  3. Na začátku pásku se objeví posloupnost červená-zelená-modrá či zelená-červená-modrá.
  4. Tlačítkem 1 se zvolí režim tak, aby byla zobrazena posloupnost červená-zelená-modrá. Tlačítkem 2 se volba potvrdí. Tato volba se provádí, aby byl pásek korektně adresován, jinak nebudou zobrazovány barvy správně.
  5. Po potvrzení volby pásek krátce blikne a zůstane rozsvícena jediná LED (je-li pásek kratší než 20 LED, nebude svítit žádná).
  6. Tlačítko 1 inkrementuje pozici svítící LED až k 60. LED, další stisk povede k rozsvícení páté LED. Měla by zůstat svítit poslední LED, tím se nastaví délka pásku (5-60 LED).
  7. Tlačítko 2 opět volbu uloží.
  8. Ve třetí části nastavení zůstanou svítit 2 LED - 1. LED se "základní" bílou barvou, 4. LED s nastavovanou barvou LED.
  9. Prvním tlačítkem se volí odstín/barevná teplota bílé barvy (9 možností).
  10. Stisk druhého tlačítka uloží volbu.
  11. Všechna nastavení se uloží do EEPROM a obnoví při dalších zapnutích. Konec nastavovacího režimu - zařízení bude pokračovat v normální funkci.

Pro omezení proudu nejsou v bílém režimu rozsvíceny všechny barvy RGB na 100 % jas. Napájecí proud se i s LED páskem s 60x WS2812B LED pohybuje do cca 2-2,5 A.


3. Údaje pro naprogramování mikrořadiče

Nastavení fusebitů je: HFUSE: 0xdd, LFUSE: 0xf1, EFUSE: 0xff.

Příkaz pro AVRDUDE při použítí programátoru USBASP je:
avrdude -c usbasp -p t85 -B10 -U hfuse:w:0xdd:m -U lfuse:w:0xf1:m -U efuse:w:0xff:m -U flash:w:'/path/to.hex'


4. Realizace prototypu, fotografie

Plošný spoj o velikosti 40x30 mm je realizován fotocestou a umístěn do plastové krabičky ZY-40 pomocí šroubů/matic M3 a rozpěrek, která je kvůli odolnosti vůči elektromagnetickému rušení na místě okolo DPS a mikrofonu vylepena měděnou páskou, na zemní plochu DPS je navíc připojena měděná pružinka dotýkající se této měděné pásky (toto, ani samotná Cu páska, zde ale nejsou kritické). Plošný spoj byl vyráběn poměrně na rychlo a v domácích podmínkách, což je bohužel viditelně znát. Lakovanými drátky je připojena kontaktní plocha (přilepená na druhé straně DPS) pro pogo piny pro programování.

Zde zkonstruovaný prototyp je napájen přes USB konektor. Toto není ideální kvůli vyšší vstupní kapacitě (která přesahuje USB specifikaci 10 µF) i vysokému odebíranému proudu s větším počtem LED. USB typu A dodá oficiálně maximální proud 0,5 A (USB 2) či 0,9 A (USB 3) a to po vykomunikování (odebírání proudu i bez vykomunikování v praxi nebývá problém), případně pro DCP a jiné nabíjecí standardy i více. Většina běžných portů dodá bez problému ampér a USB specifikace vynucuje přítomnost proudové ochrany u zařízení dodávajícího proud. Ačkoliv se to v praxi neukázalo jako problém (zařízení bylo testováno na několika USB nabíječkách, notebooku Latitude 5490 i několika stolních počítačích), pokud se pro toto řešení rozhodnete, je to na Vaši vlastní zodpovědnost. Pro takovýto provoz doporučuji provoz s nižším počtem LED (≤30) či pouze s kvalitním zdrojem. Jako kabel byl využit poměrně tlustý kabel z vadné nabíječky k notebooku, na který byl připájen kvalitní USB A konektor.

Uvnitř zařízení
Uvnitř zařízení (klikněte pro plné rozlišení)

Deska plošných spojů
Deska plošných spojů (klikněte pro plné rozlišení)


5. Soubory ke stažení

ZIP archiv - KiCad 7, gerber data, program (HEX i zdrojový kód). Zdrojový kód je pod licencí BSD, KiCad/Gerber data pod Creative Commons 3.0 Attribution (uveďte autora).

 


 
Reklama (od webhostingu):