MODULE ARDUINO & THƯ VIỆN

Điều khiển RGB LED với Arduino

Điều khiển RGB LED với Arduino

Trong bài hướng dẫn Arduino này, chúng ta sẽ biết được cách điều khiển RGB (Red – Green – Blue) LED với Arduino. Cách phối màu LED với PWM (Pulse-width modulation, điều chỉnh độ rộng xung).

RGB LED là gì?

LED RGB có thể phát ra các màu khác nhau bằng cách trộn 3 màu cơ bản là đỏ, xanh lá cây và xanh dương. Vì vậy, thật ra, nó là 3 đèn LED riêng biệt màu đỏ, xanh lá cây và xanh đóng gói trong một con LED duy nhất. Đó là lý do tại sao nó có 4 dây dẫn, mỗi dây cho mỗi màu sắc và một cathode chung (GND chung) hoặc anode chung ( Vcc chung) phụ thuộc vào loại LED RGB.

Thông thường, chúng ta hay sử dụng loại cathode chung.

Mạch điều khiển

Cathode chung sẽ được nối với GND và 3 dây còn lại sẽ được nối với 3 chân PWM trên Arduino (chân có ký hiệu ~ ) thông qua điện trở 220 Ohms. Chúng ta sẽ sử dụng PWM để mô phỏng đầu ra tương tự nhằm cung cấp các cấp điện áp khác nhau cho đèn LED để có được màu sắc mong muốn.

Khi sử dụng PWM để điều khiển ta được mã màu ứng với giá trị điều khiển từ 0 đến 255 như sau:

 

Do sử dụng Arduino MEGA như sơ đồ mạch nên các chân ngõ ra của PWM là 5,6,7. Đối với Arduino Uno, các chân ngõ ra của PWM có thể là: 3,5,6,9,10,11.

int redPin= 7;
int greenPin = 6;
int bluePin = 5;

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  setColor(255, 0, 0); // Red Color
  delay(1000);
  setColor(0, 255, 0); // Green Color
  delay(1000);
  setColor(0, 0, 255); // Blue Color
  delay(1000);
  setColor(255, 255, 255); // White Color
  delay(1000);
  setColor(170, 0, 255); // Purple Color
  delay(1000);
}

void setColor(int redValue, int greenValue, int blueValue) {
  analogWrite(redPin, redValue);
  analogWrite(greenPin, greenValue);
  analogWrite(bluePin, blueValue);
}

 

Trong đoạn code trên, chúng ta sẽ thay đổi màu sắc của đèn LED mỗi giây. Để có được đèn đỏ trên đèn LED, chúng ta sẽ gọi hàm setColor () và đặt giá trị 255 cho redValue và 0 cho hai giá trị còn lại. Tương ứng chúng ta có thể có được hai màu cơ bản khác, màu xanh lá cây và màu xanh lam. Để nhận được các màu khác nhau, chúng ta cần phải trộn các giá trị khác nhau. Ví dụ nếu đặt tất cả 3 LEDS sang độ sáng tối đa, chúng ta sẽ nhận được màu trắng và chúng ta sẽ có một màu tím nếu chúng ta đặt các giá trị sau cho: 170 redValue, 0 greenValue và 255 blueValue.

Download code Arduino mẫu

Thư viện điều khiển RGB LED

Xem thêm các module khác tại: https://www.abcarduino.com/category/module-arduino-va-thu-vien/