Mạch hiển thị NeoPixel Ring 3 RGB LED WS2812 bao gồm 3 Led RGB WS2812 giao tiếp nối tiếp qua chuẩn giao tiếp 1 wire (chỉ cần 1 chân data duy nhất), mạch rất dễ sử dụng với bộ thư viện hỗ trợ đi kèm với khả năng hiển thị của mỗi Led lên đến 16777216 màu và 256 cấp độ sáng khác nhau, phù hợp cho các ứng dụng trang trí, hiển thị: đồng hồ led, vòng đeo tay led,...
Thông số kỹ thuật:
- IC chính: LED RGB WS2812
- Điện áp sử dụng: 4~7VDC (tốt nhất 5VDC)
- Cỡ Led: SMD 5050 Led
- Chuẩn giao tiếp: 1 wire.
- Số Led hiển thị: 3
Sơ đồ chân:
- DI: Data In, chân đầu vào dữ liệu kết nối với Vi điều khiển.
- 5V: Chân nguồn 5VDC, có thể cấp 4~7VDC.
- GND: Chân Mass, 0VDC.
- DO: Data Out, dùng để nối tiếp tín hiệu đến các khối led khác.
Code tham khảo Arduino:
#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);
}
Tài liệu tham khảo:
Video tham khảo: