Vòng LED RGB WS2812 được thiết kế với 12 NeoPixels LED với đường kính PCB ngoài 50mm và LED driver là chip WS2812B được tích hợp bên trong chip cũng với một mã số riêng biệt cho từng chip led. Vòng LED RGB WS2812 có thể giao tiếp với Arduino hoặc một số microcontroller khác để điều khiển qua giao tiếp Single-wire.
Thông số kỹ thuật
Sử dụng cơ bản
Cài đặt thư viện
Sau khi tải thư viện về, bạn mở cửa sổ Arduino, chọn Sketch --> Import Library… --> Add Library… sau đó chọn file .zip mà bạn vừa tải về để có thể sử dụng thư viện.
Kết nối dây
LED RGB WS2812 5050 | IoT WiFi Uno |
---|---|
DI | GPIO15 |
5V | 5V |
GND | GND |
#include <Adafruit_NeoPixel.h>
#define PIN 15 // Chan DI cua mach
#define NUM_LED 12 //Tong so Led tren mach
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LED, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(30);
strip.show();
}
void loop() {
rainbowCycle(10);
}
void rainbowCycle(uint8_t wait) {
uint16_t i, j;
for(j=0; j<256*5; j++) { // 5 cycles of all colors on wheel
for(i=0; i< strip.numPixels(); i++) {
strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels()) + j) & 255));
}
strip.show();
delay(wait);
}
}
uint32_t Wheel(byte WheelPos) {
WheelPos = 255 - WheelPos;
if(WheelPos < 85) {
return strip.Color(255 - WheelPos * 3, 0, WheelPos * 3);
}
if(WheelPos < 170) {
WheelPos -= 85;
return strip.Color(0, WheelPos * 3, 255 - WheelPos * 3);
}
WheelPos -= 170;
return strip.Color(WheelPos * 3, 255 - WheelPos * 3, 0);
}
LED_RGB_WS2812_5050.ino