Diody programowalne RGB (WS2812B)
Diody adresowalne RGB WS2812B występuj w formie pojedynczych modułów, taśm LED lub matryc o różnych kształtach. Każda dioda posiada osobny moduł. Odpowiada on za odbieranie sygnału, na podstawie którego zapalane są odpowiednie składowe koloru RGB oraz wyście dające możliwość przekazania sygnału do kolejnej diody. Pojedynczy moduł po odebraniu sygnału sterującego wysyła dalej sygnał sterujący skrócony o impuls odpowiadający za sterowanie sobą. Diody są zasilane napięciem 5V.
Neopixel
Neopixel to biblioteka odpowiadająca za programowanie diod LED RGB.
W bibliotece wyróżniamy 3 podstawowe funkcje:
begin() - inicjalizacji biblioteki NeoPixel,
setPixelColor(nr diody, R,G,B) - do ustawienia koloru świecenia wybranej diody
show() - do wysłania danych do naszego łańcucha
Schemat
wymagany rezystor 300-800Ω. Przetwornica ustawiona na 5V.
Kod
#include <Adafruit_NeoPixel.h>
#define pinNeopixel D7
#define numberLed 15
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(numberLed, pinNeopixel, NEO_GRB + NEO_KHZ800); //Wybór pinu, ilości diod oraz rodzaju diod
void setup()
{
pixels.begin(); // inicjacja biblioteki
}
void loop()
{
for (int i = 0; i < numberLed; i++)
{
pixels.setPixelColor(i, 180, 150, 0); // Dioda "i" oraz składowe RGB(180,150,0)
pixels.show(); // Wysłanie danych do łańcucha pojedynczo
delay(50); // Opóźnienie 500ms przed zaświeceniem kolejnej diody
}
for (int i = 0; i < numberLed; i++)
{
pixels.setPixelColor(i, 255, 0, 0); // Dioda "i" oraz składowe RGB(255,0,0)
// Opóźnienie 500ms przed zaświeceniem kolejnej diody
}
pixels.show(); // Wysłanie danych do łańcucha, wszystkie diody na raz
delay(500);
for (int i = 0; i < numberLed; i++)
{
pixels.setPixelColor(i, 0, 0, 0); // Dioda "i" oraz składowe RGB(0,0,0)
}
pixels.show(); // Wysłanie danych do łańcucha, wszystkie diody na raz
delay(500);
}