Светодиод APA106 (совместим с WS2812B) включает в себя 3 управляемых светодиода (Красный, Зеленый, Синий) и контроллер APA106, образуя систему полного контроля множества последовательно включенных RGB элементов (пикселей). Каждый пиксель имеет три основных цвета с управлением 256 значений яркости, что позволяет создавать на их основе полноцветные дисплеи с 16 777 216 цветами.
Для управления светодиодами APA106 F8 необходим внешний контроллер, на роль которого подходит платформа Arduino.
Напряжение питания: 4.5 — 6.0 В.
Диаметр линзы: 8 мм.
Передача данных со скоростью 800 Kbps.
Контакты:
- +5V: Плюс питания
- GND: Минус питания
- DIN: Последовательный ввод данных
- DOUT: Служит для каскадного подключения
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
#include <Adafruit_NeoPixel.h> #include <avr/power.h> #define PIN 6 #define NUMPIXELS 1 Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_RGB + NEO_KHZ800); void setup() { pixels.begin(); } void loop() { //hue from 0 to 360 degrees for(int hue = 0; hue < 360; hue++) { // saturation and value = 1 setLedColorHSV(hue, 1, 1); delay(50); } } // thanks to http://forum.arduino.cc/index.php?topic=307655.5 void setLedColorHSV(int h, double s, double v) { double r=0; double g=0; double b=0; double hf=h/60.0; int i=(int)floor(h/60.0); double f = h/60.0 - i; double pv = v * (1 - s); double qv = v * (1 - s*f); double tv = v * (1 - s * (1 - f)); switch (i) { case 0: r = v; g = tv; b = pv; break; case 1: r = qv; g = v; b = pv; break; case 2: r = pv; g = v; b = tv; break; case 3: r = pv; g = qv; b = v; break; case 4: r = tv; g = pv; b = v; break; case 5: r = v; g = pv; b = qv; break; } //set each component to a integer value between 0 and 255 int red = constrain((int)255*r,0,255); int green = constrain((int)255*g,0,255); int blue = constrain((int)255*b,0,255); pixels.setPixelColor(0, pixels.Color(red, green, blue)); pixels.show(); } |
APA106: Документация (PDF)
Библиотека FastLED
Библиотека Adafruit NeoPixel