Internete aptikau gana įdomius trispalvius šviesos diodus (RGB LED), kuriuos galima valdyti nuoseklia sąsaja. Kiekvienos spalvos LED kristalo intensyvumą galimą valdyti atskirai ir galimi 256 lygiai. Vieno LED valdymas vyksta vienu kontaktu skaitmeniniu būdu nuosekliai perduodant duomenis (3x 8 bitus).
LED taip pat turi duomenų išėjimo kontaktą, kuris gali būti jungiamas prie kito LED. Šitaip galima daug atskirų LED sujungti nuosekliai ir tokios grandinėlės kiekvieną LED valdyti atskirai, tam panaudojant tik vieną mikrovaldiklio išvadą. Maitinimo kontaktus, žinoma, reikia sujungti lygiagrečiai.
Valdant LEDus siunčiama paketas, sudarytas iš tiek duomenų atskirų LED duomenų (3×8 bitus), kiek LED norima valdyti. Paketo pabaigoje yra naudojamas specialus simbolis ir tada visi LED užfiksuoja (angl. latch) duomenis ir atnaujina šviesos intensyvumo valdymą.
Kad praktiškai išbandyčiau šiuos LED, įsigijau žiedą, kurį sudaro 60 jau minėtų LED (WS2812B). Ištikro, žiedą sudaro 4 atskiri PCB segmentai (ant kiekvieno segmento po 15 LED), kuriuos sujungus gaunamas uždaras žiedas. Žinoma, pirmo ir paskutinio segmento DIN ir DOUT sujungti nereikia.
Prisijungęs tris laidus (GND, +5V ir DIN) jau galėjau programuoti LED grandinėlė valdantį mikrovaldiklį ir išgauti įvairius vizualinius efektus. Kadangi LED kiekis yra gana didelis, būtina atsižvelgti į LED vartojama srovę ir pasirinkti tinkamą maitinimo šaltinį.
Tokių LED naudojimas labai supaprastina įvarių vizualizacijų (LED matricos, kubai ir t.t.) kūrimą. Beje, kai kur šie LED vadinami NeoPixel.
Awesome work done by you.
Sir can you please share the Arduino Software code for this ring project.
Thanks & regards.