AVR79: WS2812 RBG LED juostelė

Trumpas eksperimentas su kiniškais, individualiai kontroliuojamai (addressable) RBG LEDais. T.y. tai kaip ir ilga juostele su RGB LEDais kuriuose sumontuota maža mikroschema kuri leidžia užprogramuoti trijų RGB šviesos diodų intensivumą. Šviesos diodai (ir pati juostelė) valdosi tik per vieną duomenų laidą, t.y. protokolas asinchroninis ir jo veikimas priklauso nuo teisingo taimingo.

WS2812 individually addressable RGB LED control AVR

Pradžioje galvojau rašyti viską nuo nulio, bet poto nutariau ne vargti ir pasiieškojau source code internete. Radau kažkokį universalų, AVR procesoriukams. Nors pats kodas kaip ir universalus, ir turėtu duoti ispėjimus, kai makrosai nesuskaičiuoja, tačiau net kokią valandą kankinausi su kodu, nes signalai nesigavo su teisingais intervalais. Pasirodo, kad mano turimas ATMEGA162, grojantis ant 3,686MHz (cominis) yra kaip tik ant tos ribos, kada softas dar mano, kad sugebės taimingus suformuoti, bet WS2812 mikroschema visiškai su tuom nesutinka. Pakeitus kvarcą į 12MHz (USBinis), viskas iškarto pradėjo veikti.

Tavo vamzdyje arba tu vamzdis (Youtube) pilna filmukų, kur iš tokių LED eilučių pasidaro ištisus ekranus. Tačiau, norint pasidaryti normalios raiškos LED ekraną reikia investuoti į gana daug tokių LED eilučių. Gaunasi brangokas projektas. O ir tada su paprasta ATMEGA neprasisuksi, nes reikia organizuoti video informacijos apdorojimą ir video buferį atmintyje.

Ir aišku: WS2812 AVR ATMEGA source code ir kompiliuotas hex failas.

P.S. Vienas bugas WS2812 juostelėje- kažkodėl neteisingai veikia kai maitinimo įtampa daugiau kaip ~4V. Pradeda fušeruoti. Gal dėl to, kad sujungtas Vcc ir Vled juostelėje, muša stiprius trigdžius? Nes teoriškai, turi veikti net ir nuo 7V…

4 replies on “AVR79: WS2812 RBG LED juostelė”

  1. Taip, timingas truputi komplikuoja reikalus. Bet gerai kad jau yra gatavų sprendimų ir plikam avr ir arduino ir raspberiui. Su paskutiniu buvo sunkiausia, tai prieš tai pabandymui buvau paleidęs 300 led ant Arduino su FastLed lib’ų.
    Būna tos pačios mikroschemos iš ledų atskirai: ws2811. Ir yra panašaus principo, bet valdomi jau per SPI, tai ir be timingo problemų visokie APA102. Na ir dar mačiau, kad pradėjo atsirasti rgbw ledai, bet šitų dar neteko bandyti.
    Ledai smagūs, tik dar kolkas brangoki.

  2. Kogero ipratimas. O ir RARas nesikeičia visiškai jau daug metų. Nes nėra ką ten keisti. O tuo tarpu kiti archyvatoriai irgi neturi ką gero pasiūlyti, tai metė visas jėgas į gėjišką dizainą ir visokius “bells and whistles”.

  3. RAR’as — vienas iš mažiausiai „veidą praradusių“ archyvatorių. Aš jį kartais ir su Wine iš Linux ar Mac naudoju. O ir jo šifravimo algoritmas vienas iš geresnių, be pilno perrinkimo slaptažodžio neatspėsi, kai tu tarpu ZIP su biškiu statistikos analizų lengva iškrapštyt.

Leave a Reply

Your email address will not be published. Required fields are marked *