ESP8266 Đèn LED RGB
Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 để điều khiển đèn LED RGB. Cụ thể, chúng ta sẽ tìm hiểu:
- Cách hoạt động của LED RGB.
- Cách kết nối LED RGB với ESP8266.
- Cách lập trình ESP8266 để điều khiển màu của LED RGB.
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 | × | RGB LED | ||
| 3 | × | 220 ohm Resistor | ||
| 1 | × | (Hoặc) RGB LED Module | ||
| 1 | × | breadboard | ||
| 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) |
Về LED RGB
Đèn LED RGB có thể tạo ra bất kỳ màu sắc nào bằng cách kết hợp ba màu cơ bản là đỏ, xanh lá cây và xanh lam. Nó được tạo thành từ ba LED riêng biệt (đỏ, xanh lá cây và xanh lam), nhưng tất cả được chứa trong một vỏ duy nhất.
Sơ đồ các chân LED RGB
Một đèn LED RGB có bốn chân:
- Chân chung (âm cathode) cần được liên kết với GND (0V)
- Chân R (đỏ) được dùng để điều chỉnh màu đỏ
- Chân G (xanh lá) được dùng để điều chỉnh màu xanh lá
- Chân B (xanh dương) được dùng để điều chỉnh màu xanh

Để làm cho một đèn LED RGB hoạt động với ESP8266, chúng ta cần thêm các điện trở giới hạn dòng. Điều đó có thể khiến việc lắp đặt dây trở nên hơi phức tạp. Nhưng mà, vẫn có một giải pháp! Chúng ta có thể sử dụng một mô-đun LED RGB đã tích hợp sẵn các điện trở. Dễ như ăn bánh!
Mô-đun LED RGB cũng có bốn chân:
- Chân chung (Cathode-) cần được nối với GND (0V)
- R (đỏ): chân được dùng để điều khiển màu đỏ
- G (xanh lá): chân được dùng để điều khiển màu xanh lá
- B (xanh dương): chân được dùng để điều khiển màu xanh dương

※ Lưu ý:
Chân chung có thể là âm cực hoặc dương cực và có thể khác nhau tùy thuộc vào loại LED RGB. Hướng dẫn này sẽ sử dụng một chân chung âm cực.
Cách hoạt động
Trong lĩnh vực vật lý, ba giá trị màu tạo thành một màu: Đỏ (R), Xanh lá cây (G), và Xanh dương (B). Mỗi giá trị dao động từ 0 đến 255. Sự kết hợp của ba giá trị tạo ra tổng số màu là 256 × 256 × 256.
Chúng ta có thể thiết lập đèn LED RGB thành bất kỳ màu nào chúng ta mong muốn bằng cách sử dụng ESP8266 để tạo tín hiệu PWM (từ 0 đến 255) cho các chân R, G và B. Chu kỳ làm việc của các tín hiệu PWM gửi tới các chân R, G và B tương ứng với giá trị màu đỏ, xanh lá và xanh dương.
Sơ đồ đấu dây
- Sơ đồ kết nối giữa ESP8266 và LED RGB

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.
- Sơ đồ nối dây giữa ESP8266 và module LED RGB

This image is created using Fritzing. Click to enlarge image
Cách Điều Khiển Đèn LED RGB
Hãy học cách điều khiển đèn LED GRB để tạo ra bất kỳ màu nào, ví dụ #00979D theo từng bước:
- Đầu tiên, xác định màu bạn muốn hiển thị và lấy mã màu của nó. Gợi ý:
- Bạn có thể chọn mã màu mong muốn từ bộ chọn màu
- Nếu bạn muốn sử dụng một màu trong hình ảnh, hãy dùng công cụ trực tuyến Colors From Image
- Sau đó, chuyển đổi mã màu sang các giá trị R, G, B bằng công cụ từ w3school. Ghi chú các giá trị này. Trong trường hợp này: R = 0, G = 151, B = 157

- Xác định các chân ESP8266 liên kết với các chân R, G và B. Ví dụ:
- Đặt các chân ESP8266 sau đây ở chế độ đầu ra:
- Điều khiển LED phát ra màu của #00979D, được tạo thành từ Đỏ = 0, Xanh lá = 151, và Xanh dương = 157.
ESP8266 - Mã ví dụ LED RGB
Mã ESP8266 ở dưới đây thay đổi màu của đèn LED theo một chuỗi các màu:
- #00C9CC (Đỏ = 0, Xanh lá cây = 201, Xanh dương = 204)
- #F7788A (Đỏ = 247, Xanh lá cây = 120, Xanh dương = 138)
- #34A853 (Đỏ = 52, Xanh lá cây = 168, Xanh dương = 83)
Khi sử dụng nhiều màu sắc, chúng ta có thể rút ngắn mã ESP8266 bằng cách tạo một hàm:
Kiến thức bổ sung
Đối với LED RGB có anode chung, bạn cần:
- Kết nối chân chung đến 3.3V của ESP8266.
- Đảo ngược các giá trị R, G và B trong hàm analogWrite(), tức là dùng 255 - R, 255 - G và 255 - B, tương ứng.
Một chuỗi LED RGB được nối với nhau tạo thành một dải LED RGB. Dải LED có thể được chia thành hai loại: dải LED có thể định địa chỉ và dải LED không thể định địa chỉ. Chúng tôi sẽ tạo các bài hướng dẫn cho cả hai loại dải LED.
※ Lưu ý:
Không nên sử dụng một điện trở duy nhất ở chân chung của LED RGB thay vì ba điện trở ở các chân còn lại.
Lý do là, mặc dù về lý thuyết có thể sử dụng một điện trở ở chân chung, nhưng trên thực tế điều này lại không đúng. Các LED trong một gói RGB không giống nhau, có nghĩa là điện trở của chúng khác nhau. Do đó, dòng điện được phân bổ không đồng đều tới từng LED, khiến độ sáng không đồng nhất, điều này có thể dẫn đến việc làm hỏng một hoặc nhiều LED, và cuối cùng là làm hỏng các LED khác.