Vòng LED RGB WS2812 được thiết kế với 8 NeoPixels LED với đường kính PCB ngoài 32mm 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
Vòng led | IoT WiFi Uno |
---|---|
DI | GPIO15 |
5V | 5V |
GND | GND |
Mẹo Chúng ta có thể kết nối nhiều vòng led với nhau bằng cách nối chân DO của vòng led trước với chân DI của vòng led sau.
Code mẫu
#include <Adafruit_NeoPixel.h>
#define PIN 15 // Chan DI cua mach
#define NUM_LED 8 //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
Demo