sobota, 25 marca 2017

Arduino + LED WS2801 = relax

Po co? - dla zabawy

Znalazłem coś takiego w swojej stercie układów - czego to człowiek nie kupował na początku mikroprocesorowej przygody






To moduł 4 diod RGB połączonych równolegle zasilanych z układu WS2801.  Pozwala on na ustawienie i zapamiętanie dowolnego poziomu świecenia każdej z trzech diod umieszczonych w obudowie zintegrowanego LEDa. Układy (a więc i diody) można łączyć szeregowo w fantazyjnie sterowane łańcuchy czy matryce LED. Układy WS2801 komunikują się jakiś rodzajem protokołu SPI, przy czym wpisywanie danych do połączonych LED jest szeregowe i sekwencyjne tzn dana jest wpisywana do pierwszego układu w następnym cyklu z pierwszego do drugiego w trzecim z drugiego do trzeciego itd. Mam jeden układ WS2801 więc nie przetestuję funkcji łańcucha LED - dziś tylko próba sterowania kolorami.

Schemat prosty


Kod
 Jak zawsze nieocenione w Arduino biblioteki do wszystkiego wspomagają pracę "programisty"



Tym razem ściągnąłem bibliotekę Adafruit-WS2801-Library-master i mała zagwostka - niewiele z tego rozumiem. Pomocny okazał się artykuł p. Jarzębskiego a w zasadzie jego początek. To co zrozumiałem z działania biblioteki "Adafruit_WS2801.h"  umieściłem w programie. Jak zawsze gdy korzystamy z gotowych bibliotek sam program to zaledwie kilka linijek teksu. Od siebie dodałem trzy pętle for by uzyskać całą gamę kolorów.  Liczba n to maksymalne natężenie poszczególnych diod (z max 255). Najładniej kolory widać przy mniejszej jaskrawości więc mocno ograniczyłem świecenie LEDów. Program przemiata wszystkie możliwe kombinacje nastaw RGB z zakresu jasności świecenia 0-19 co 0,2 sek. LEDy należy obserwować z kilku m by nie widzieć poszczególnych kolorów lub przysłonić je transparentnym lecz matowym materiałem.
Kolory w procedurze strip.setPixelColor winny być kolejno RGB - u mnie są jak raz BGR.

Teraz pozostaje mi kupić niedrogo jakiś łańcuch LEDów ze sterownikiem WS28xx i spróbować wyczarować na nim różne falujące efekty.
Szkoda tylko, że święta już za nami.

cdn........


Brak komentarzy:

Publikowanie komentarza