ESP8266 Dải đèn LED WS2812B
Dải LED WS2812B RGB được cấu thành từ các LED mà màu sắc và độ sáng có thể được điều chỉnh riêng lẻ. Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 để điều khiển dải LED WS2812B RGB. Cụ thể, chúng ta sẽ tìm hiểu:
- Cách kết nối dải LED WS2812B với ESP8266
- Cách lập trình ESP8266 để điều khiển màu sắc của từng LED trên dải WS2812B
- Cách lập trình ESP8266 để điều khiển độ sáng của từng LED trên dải WS2812B
Chúng ta chỉ cần sử dụng một chân GPIO của ESP8266 để điều khiển toàn bộ các đèn LED trên dải.
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (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 Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới thiệu về dải LED RGB WS2812B
Cấu hình chân của dải LED WS2812B
Dải đèn LED RGB WS2812B có ba chân cần các kết nối đặc biệt:
- Chân GND phải được nối với GND (0V)
- Chân VCC nê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 và nên được liên kết với một chân trên ESP8266
※ Lưu ý:
Thứ tự các chân có thể khác nhau tùy thuộc vào nhà sản xuất. Việc sử dụng các ký hiệu được in trên dải LED là bắt buộc.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
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.
- Tạo một đối tượng WS2812B
- Dải LED gồm 30 đèn
- Khởi tạo dải WS2812B chứa 30 đèn LED.
- Xác định màu sắc của mỗi LED (được gọi là một điểm ảnh).
- Điều chỉnh độ sáng cho tất cả các dải.
※ Lưu ý:
- WS2812B.setBrightness() được dùng để điều chỉnh độ sáng của tất cả các pixel trên dải LED. Để thiết lập độ sáng cho mỗi pixel riêng lẻ, ta có thể nhân các giá trị màu (R, G, B) với cùng một tỉ lệ.
- Các giá trị được thiết lập bởi WS2812B.setBrightness() và WS2812B.setPixelColor() sẽ chỉ được áp dụng khi WS2812B.show() được thực thi.
Mã ESP8266
Đoạn mã dưới đây thực hiện các chuỗi sau đây:
- Chuyển các pixel sang màu xanh lá cây từng cái một với độ trễ giữa mỗi pixel
- Tắt tất cả các pixel trong hai giây
- Bật sáng tất cả các pixel màu đỏ đồng thời trong hai giây
- Lặp lại quá trình này mãi mãi
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Xem ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
- Nối các thành phần như được hiển thị trong sơ đồ.
- Kết nối board ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn board ESP8266 phù hợp, chẳng hạn như (ví dụ: NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng.
- Nhấn vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
- Tìm kiếm “Adafruit NeoPixel” và tìm thư viện NeoPixel của Adafruit.
- Sau đó, nhấn nút Install để cài đặt thư viện NeoPixel.
- Sao chép mã và mở nó trong Arduino IDE.
- Nhấp vào nút Tải lên để gửi mã đến ESP8266.
- Xem hiệu ứng 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ịch 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.