W Nettigo mamy dostępne LED-y RGB sterowane interfejsem szeregowym. Można za pomocą jednego cyfrowego pinu kontrolera sterować całym szeregiem takich diod i ustawiać każdej niezależnie kolor z 24 bitowej palety (17 mln barw).
Mamy też całą taśmę takich lampek LED. W jednym metrze mieści się ich 60. Taśma jest w osłonie wodoodpornej.
Myślę, że to fajny element zestawu majsterkowicza DIY do przyozdobienia domu lub choinki na święta z własnym niepowtarzalnym schematem świecenia.
Piszę o nich ponownie, gdyż pojawiła się nowa lepsza biblioteka do sterowania tymi lampkami. Nazywa się “light_ws2812” i dostępna jest w serwisie Github.
Biblioteka obsługuje procesory ARM, ATtiny oraz platformę Arduino.
Oto przykład jej zastosowania na platformie Arduino:
#include <WS2812.h> WS2812 LED(1); cRGB color; void setup() { LED.setOutput(9); } void loop() { color.r = 255; color.g = 0; color.b = 0; LED.set_crgb_at(0, color); LED.sync(); delay(500); color.r = 0; color.g = 255; color.b = 0; LED.set_crgb_at(0, color); LED.sync(); delay(500); color.r = 0; color.g = 0; color.b = 255; LED.set_crgb_at(0, color); LED.sync(); delay(500); }
Na początku trzeba ustawić bibliotekę sterującą światełkami poprzez dyrektywę include:
#include <WS2812.h>
Potem tworzę obiekt o nazwie LED odpowiedzialny za sterowanie diodami:
WS2812 LED(1);
Jego pierwszy argument określa ilość LED-ów podłączonych w szeregu do wybranego pinu. Nadałem mu wartość 1 bo podłączyłem jedną diodę.
Następnie tworzę zmienną o nazwie color typu cRGB:
cRGB color;
Służy ona do przechowywania wartości koloru składającej się z 3 barw podstawowych R – Red [czerwony], G – Green [zielony] i B- Blue [niebieski].
W funkcji setup za pomocą metody “setOutput” [ustaw wyjście] ustawiam pin do którego podłączyłem diody.
LED.setOutput(9);
Wybrałem pin cyfrowy 9.
W funkcji loop określiłem animację świecenia lampki. Polega ona na tym, że co pół sekundy zmienia się kolor pierwszej lampki na jeden z 3 podstawowych kolorów w pełnej jasności.
Najpierw ustawiam jasności poszczególnych składowych kolorów w zmiennej color:
color.r = 0; color.g = 255; color.b = 0;
W tym przypadku ustawiłem wartość g na 255, co daje maksymalną jasność dla koloru zielonego, natomiast inne składowe otrzymały najniższą wartość czyli 0. Możesz stosować dowolne kombinacje kolorów ustawiając odpowiednie wartości składowych jako liczby od 0 do 255.
Potem przypisuje ustawiony kolor do wybranej diody za pomocą metody “set_crgb_at”.
LED.set_crgb_at(0, color);
Jego pierwszy argument to numer diody w szeregu, której chcesz ustawić kolor. Drugim argumentem jest wartość koloru przechowywana w zmiennej color.
By wysłać dane o kolorze do lampki, trzeba użyć metody “sync”.
LED.sync();
I to tyle. Możesz teraz tworzyć własne unikalne animacje świetlne w prosty sposób.
O tym jak podłączyć diody do Arduino dowiesz się ze starszego wpisu:
Bibliotekę możesz ściągnąć z serwisu Github:
Diody w dwóch wersjach jak i wodoodporną taśmę kupisz w Nettigo.
sprae