Arduino đèn LED RGB
Trong bài hướng dẫn này, chúng ta sẽ học:
- Cách LED RGB hoạt động.
- Cách kết nối đèn LED RGB với Arduino.
- Cách lập trình Arduino để điều khiển màu của đèn LED RGB.
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 | × | RGB LED | ||
| 1 | × | (Hoặc) RGB LED Module | ||
| 1 | × | breadboard | ||
| 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ề LED RGB
Đèn LED RGB có thể phát ra bất kỳ màu sắc nào bằng cách pha trộn 3 màu cơ bản là đỏ, xanh lá cây và xanh dương. Thực tế, nó gồm 3 đèn LED riêng biệt có màu đỏ, xanh lá cây và xanh dương được ghép lại trong một vỏ duy nhất.
Bản đồ chân
Đèn LED RGB có bốn chân:
- Chân chung (Cathode-): cần được kết 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

Để kết nối đèn LED RGB với Arduino, chúng ta cần sử dụng các điện trở hạn dòng. Việc này có thể làm cho việc đi dây trở nên phức tạp. May mắn thay, chúng ta có thể sử dụng mô-đun LED RGB, vốn đã có sẵn các điện trở hạn dòng được tích hợp.
Mô-đun LED RGB cũng bao gồm bốn chân:
- Chân chung (Cathode-): cần được kết 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

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

This image is created using Fritzing. Click to enlarge image
- Sơ đồ nối giữa Arduino và mô-đun LED RGB

This image is created using Fritzing. Click to enlarge image
Cách điều khiển LED RGB
Hãy học cách điều khiển LED GRB từng bước để có được bất kỳ màu sắc nào, ví dụ #00979D:
- 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ể lấy mã màu bạn muốn từ bộ chọn màu
- Nếu bạn muốn dùng màu trong một hình ảnh, hãy dùng công cụ trực tuyến Colors From Image
- Chuyển đổi mã màu sang các giá trị R, G, B bằng công cụ từ W3Schools. 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 Arduino kết nối với các chân R, G và B. Ví dụ:
- Cấu hình các chân Arduino này ở chế độ đầu ra
- Điều khiển LED phát ra màu đó (#00979D → R = 0, G = 151, B = 157)
Arduino - Mã ví dụ LED RGB
Đoạn mã dưới đây thay đổi màu LED theo trình tự các màu sau:
- #00C9CC (Đỏ = 0, Xanh lá = 201, Xanh lam = 204)
- #F7788A (Đỏ = 247, Xanh lá = 120, Xanh lam = 138)
- #34A853 (Đỏ = 52, Xanh lá = 168, Xanh lam = 83)
Khi sử dụng nhiều màu sắc, chúng ta có thể rút ngắn mã bằng cách tạo một hàm:
Kiến thức bổ sung
- Đối với đèn LED RGB có cực dương chung (Anode), bạn cần:
- Kết nối chân chung với 3.3V của Arduino.
- Thay đổi các giá trị R, G và B trong hàm analogWrite() thành 255 - R, 255 - G và 255 - B, tương ứng.
- Một chuỗi các đèn LED RGB được kết nối với nhau tạo thành dải LED RGB. Dải LED có thể được phân loại thành dải LED có thể điều khiển theo địa chỉ và dải LED không thể điều khiển theo địa chỉ. Chúng ta sẽ làm các bài hướng dẫn cho từng loại dải LED.
※ Lưu ý:
Tránh 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.
Như chúng ta đã biết, ba LED trong một gói RGB duy nhất được nối song song. Trong điều kiện lý tưởng, việc sử dụng một điện trở ở chân chung là được. Tuy nhiên, trong thực tế, không nên làm vậy. Đó là bởi vì LED ngoài đời thực không có đặc tính giống nhau. Ba LED trong gói RGB không giống hệt nhau; các điện trở của các LED khác nhau; dòng điện được phân phối không đều cho từng LED; độ sáng không đồng đều và điều này có thể làm hỏng một LED, và sau đó làm hỏng các LED khác.