LED RGB là một loại LED đặc biệt có thể phát ra nhiều màu sắc khác nhau nhờ vào sự kết hợp của ba màu cơ bản: Red (Đỏ), Green (Xanh lá) và Blue (Xanh dương). Trong bài viết này, chúng ta sẽ tìm hiểu cách kết nối và lập trình LED RGB bằng Arduino.
1. LED RGB là gì?
🔹 LED RGB gồm 3 đi-ốt phát sáng trong một vỏ bọc duy nhất, mỗi đi-ốt phát ra một màu sắc khác nhau (Đỏ, Xanh lá, Xanh dương).
🔹 Có hai loại LED RGB phổ biến:
✔ Loại Cathode chung (Common Cathode – CC): Chân GND chung, các chân R, G, B được cấp mức cao để bật LED.
✔ Loại Anode chung (Common Anode – CA): Chân VCC chung, các chân R, G, B được kéo xuống mức thấp để bật LED.
💡 Trong bài này, chúng ta sử dụng LED RGB Cathode chung.
2. Chuẩn bị linh kiện
✔ 1 x LED RGB (Cathode chung)
✔ 3 x điện trở 220Ω (hạn chế dòng điện)
✔ 1 x Arduino Uno/Nano/Mega
✔ Dây cắm Breadboard
3. Sơ đồ đấu nối LED RGB với Arduino
Chân LED RGB | Kết nối với Arduino |
---|---|
Chân GND | GND trên Arduino |
Chân R (Red) | Chân 9 |
Chân G (Green) | Chân 10 |
Chân B (Blue) | Chân 11 |
💡 Mỗi chân R, G, B cần nối với điện trở 220Ω để hạn chế dòng.
4. Lập trình điều khiển LED RGB
🔹 Chương trình đổi màu LED RGB đơn giản
void setup() {
pinMode(9, OUTPUT); // Chân điều khiển LED đỏ
pinMode(10, OUTPUT); // Chân điều khiển LED xanh lá
pinMode(11, OUTPUT); // Chân điều khiển LED xanh dương
}
void loop() {
digitalWrite(9, HIGH); // Bật màu đỏ
digitalWrite(10, LOW);
digitalWrite(11, LOW);
delay(1000);
digitalWrite(9, LOW);
digitalWrite(10, HIGH); // Bật màu xanh lá
digitalWrite(11, LOW);
delay(1000);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH); // Bật màu xanh dương
delay(1000);
}
📌 Giải thích:
digitalWrite(9, HIGH);
→ Bật LED màu đỏ.digitalWrite(10, HIGH);
→ Bật LED màu xanh lá.digitalWrite(11, HIGH);
→ Bật LED màu xanh dương.- Thời gian chuyển đổi màu là 1 giây (1000ms).
5. Điều chỉnh màu sắc LED bằng PWM
Để tạo nhiều màu khác nhau, chúng ta có thể sử dụng PWM (Pulse Width Modulation) với hàm analogWrite()
.
🔹 Chương trình đổi màu mềm mượt bằng PWM
void setup() {
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
for (int i = 0; i <= 255; i++) {
analogWrite(9, i); // Tăng dần cường độ màu đỏ
analogWrite(10, 255-i); // Giảm dần màu xanh lá
analogWrite(11, i/2); // Điều chỉnh màu xanh dương
delay(10);
}
}
📌 Giải thích:
analogWrite(pin, value);
→ Điều chỉnh độ sáng của LED (giá trị từ 0 đến 255).- Vòng lặp
for
giúp thay đổi màu sắc từ từ để tạo hiệu ứng mượt hơn.
6. Ứng dụng mở rộng
✅ Hiệu ứng chuyển màu mềm mượt bằng cách thay đổi giá trị PWM.
✅ Cảm biến điều khiển LED RGB (ví dụ: thay đổi màu theo nhiệt độ hoặc ánh sáng).
✅ Dùng module LED RGB WS2812B để tạo hiệu ứng ánh sáng chuyên nghiệp.
7. Kết luận
Bạn đã học cách điều khiển LED RGB bằng Arduino và tạo hiệu ứng chuyển màu bằng PWM. Trong bài tiếp theo, chúng ta sẽ tìm hiểu về đọc dữ liệu từ cảm biến nhiệt độ! 🚀
👉 Bạn đã thử nghiệm LED RGB chưa? Nếu gặp lỗi, hãy để lại bình luận để được hỗ trợ nhé! 🎯