Arduino Dải LED WS2812B
Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino để điều khiển dải LED RGB WS2812B. Với một chân Arduino duy nhất:
- Arduino có thể điều khiển màu sắc của mỗi LED trên dải LED một cách riêng biệt
- Arduino có thể thay đổi độ sáng của mỗi LED trên dải LED một cách riêng biệt
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | WS2812B RGB LED Strip | ||
| 1 | × | 1000uF Capacitor | ||
| 1 | × | 470Ω Resistor | ||
| 1 | × | 5V Power Adapter | ||
| 1 | × | DC Power Jack | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về dải LED RGB WS2812B
Bố trí chân
Dải LED WS2812B RGB có ba chân:
- Chân GND: cần được kết nối với GND (0V)
- Chân VCC: cần được kết nối với 5V từ nguồn cấp ngoài
- Chân Din: là chân nhận tín hiệu điều khiển. Nó nên được kết nối với một chân trên Arduino.
※ Lưu ý:
Thứ tự các chân có thể khác nhau giữa các nhà sản xuất. Luôn sử dụng nhãn được in trên dải LED.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Cách Lập Trình Cho Dải LED WS2812B RGB
Có hai thư viện có thể được sử dụng để điều khiển dải LED WS2812B.
- Thư viện Adafruit NeoPixel.
- Thư viện FastLED.
Hướng dẫn này sẽ sử dụng thư viện Adafruit NeoPixel.
- Khai báo một đối tượng WS2812B
- Khởi tạo WS2812B
- Đặt màu cho từng đèn LED riêng lẻ (được gọi là pixel).
- Thiết lập độ sáng cho tất cả các dải.
※ Lưu ý:
- WS2812B.setBrightness() được dùng cho toàn bộ các pixel trên dải LED. Để thiết lập độ sáng cho từng pixel riêng lẻ, chúng ta có thể nhân giá trị màu với một hệ số tỉ lệ.
- Các giá trị được thiết lập bởi WS2812B.setBrightness() và WS2812B.setPixelColor() chỉ có hiệu lực khi gọi WS2812B.show().
Mã Arduino
Đoạn mã dưới đây thực hiện:
- Chuyển các pixel sang màu xanh lá cây từ từ, từng pixel một, với khoảng trễ giữa mỗi pixel
- Tắt tất cả các pixel trong hai giây
- Bật tất cả các pixel lên màu đỏ đồng thời trong hai giây
- Lặp lại quá trình trên vô hạn
Hướng dẫn từng bước
- Đi tới biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
- Tìm kiếm “NeoPixel NeoPixel”, sau đó tìm thư viện WS2812B của Adafruit
- Nhấp vào nút Cài đặt để cài đặt thư viện NeoPixel.
- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấp vào Tải lên trên Arduino IDE để tải mã lên Arduino
- Xem hiệu ứng đèn LED
※ Lưu ý:
Đối với bất kỳ hiệu ứng LED phức tạp nào, chúng tôi cung cấp dị vụ lập trình trả phí
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.