Arduino UNO R4 RGB LED

Hướng dẫn này sẽ chỉ bạn cách sử dụng Arduino để điều khiển RGB LED. Cụ thể, chúng ta sẽ học:

Arduino UNO R4 rgb LED

Phần Cứng Cần Thiết

1×Arduino UNO R4 WiFi hoặc Arduino UNO R4 Minima
1×(Tùy chọn) DIYables STEM V4 IoT, tương thích với Arduino Uno R4 WiFi
1×Arduino UNO R4 Minima (Thay thế)
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×mô-đun LED RGB
1×(Thay thế) RGB LED
1×breadboard
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino UNO R4
1×(Khuyến nghị) Breadboard Shield for Arduino UNO R4
1×(Khuyến nghị) Enclosure for Arduino UNO R4
1×(Khuyến nghị) Power Splitter for Arduino UNO R4
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V4 IoT Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Giới Thiệu Về RGB LED

RGB LED có thể tạo ra bất kỳ màu nào bằng cách kết hợp ba màu cơ bản: đỏ (red), xanh lá cây (green), và xanh lam (blue). Nó chứa ba LED riêng biệt: một LED đỏ, một LED xanh lá cây, và một LED xanh lam. Tất cả được đặt cùng nhau trong một đơn vị.

Sơ Đồ Chân

RGB LED có bốn chân.

  • Kết nối chân Common (Cathode-) với GND (0V).
  • Chân R (red) điều khiển màu đỏ.
  • Chân G (green) điều khiển màu xanh lá cây.
  • Chân B (blue) điều khiển màu xanh lam.
rgb LED sơ đồ chân

Để kết nối RGB LED với Arduino UNO R4, chúng ta nên sử dụng các điện trở hạn chế dòng điện, điều này làm cho việc thiết lập trở nên hơi phức tạp. Tuy nhiên, chúng ta có thể sử dụng RGB LED module đã có sẵn các điện trở này.

RGB LED module cũng có bốn chân.

  • Chân Common (Cathode-) nên được kết nối với GND (0V).
  • Chân R (red) điều khiển màu đỏ.
  • Chân G (green) điều khiển màu xanh lá cây.
  • Chân B (blue) điều khiển màu xanh lam.
rgb LED module sơ đồ chân

※ Lưu ý:

Hướng dẫn này sử dụng RGB LED với cathode chung. Điều này có nghĩa là chân chung là cathode. Các RGB LED khác nhau có thể có chân chung là anode.

Cách Hoạt Động

Trong vật lý, một màu được tạo thành từ ba giá trị: Red (R), Green (G), và Blue (B). Mỗi giá trị có thể từ 0 đến 255.

⇒ Có tổng cộng 256 x 256 x 256 màu được tạo ra bằng cách kết hợp ba giá trị khác nhau.

⇒ Nếu chúng ta gửi tín hiệu PWM (với chu kỳ nhiệm vụ từ 0 đến 255) đến các chân R, G, và B, chúng ta có thể làm cho RGB LED hiển thị bất kỳ màu nào chúng ta chọn. Chu kỳ nhiệm vụ 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 Red (R), Green (G), và Blue (B).

Sơ Đồ Đấu Nối

  • Sơ đồ đấu nối giữa Arduino UNO R4 và RGB LED.
Arduino UNO R4 rgb LED sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Không sử dụng một điện trở trên chân chung của RGB LED. Thay vào đó, sử dụng ba điện trở riêng biệt trên các chân khác như sơ đồ trên. Các LED khác nhau trong gói RGB không có cùng đặc tính, có nghĩa là chúng không chia sẻ dòng điện một cách đều nhau. Điều này có thể gây ra độ sáng không đồng đều và có thể làm hỏng LED nếu sử dụng một điện trở duy nhất trên chân chung.

  • Sơ đồ đấu nối giữa Arduino UNO R4 và RGB LED module
Arduino UNO R4 rgb LED module sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Cách Điều Khiển RGB LED

Hãy học từng bước cách thay đổi RGB LED thành bất kỳ màu nào, ví dụ, màu #00979D.

  • Chọn màu bạn muốn sử dụng và tìm mã màu của nó.
    • Bạn có thể chọn mã màu từ color picker này.
    • Nếu bạn cần một màu từ một bức ảnh, hãy sử dụng công cụ Colors From Image này.
  • Chuyển đổi mã màu thành các giá trị RGB bằng công cụ này. Ghi nhớ các giá trị này: R = 0, G = 151, B = 157.
rgb LED color picker
  • Định nghĩa các chân Arduino UNO R4 kết nối với các chân R, G, và B. Ví dụ:
#define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin
  • Cấu hình các chân Arduino UNO R4 này làm đầu ra.
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Lập trình chân Arduino để tạo tín hiệu PWM hiển thị màu (#00979D; R = 0, G = 151, B = 157).
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

Code Ví Dụ Arduino UNO R4 - RGB LED

Code dưới đây thay đổi màu LED theo thứ tự:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-rgb-led */ #define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set red LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set green LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set blue LED pin as an output } void loop() { // Set RGB LED to teal color #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // Maintain color for 1 second // Set RGB LED to salmon pink #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // Maintain color for 1 second // Set RGB LED to Google green #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // Maintain color for 1 second }

Khi sử dụng nhiều màu, chúng ta có thể rút ngắn code bằng cách tạo một hàm:

/* * Mã Arduino UNO R4 này được phát triển bởi newbiely.vn * Mã Arduino UNO R4 này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino-uno-r4/arduino-uno-r4-rgb-led */ #define PIN_RED 9 // Arduino UNO R4 pin connected to the LED's red pin #define PIN_GREEN 6 // Arduino UNO R4 pin connected to the LED's green pin #define PIN_BLUE 3 // Arduino UNO R4 pin connected to the LED's blue pin void setup() { pinMode(PIN_RED, OUTPUT); // Set RED LED pin as an output pinMode(PIN_GREEN, OUTPUT); // Set GREEN LED pin as an output pinMode(PIN_BLUE, OUTPUT); // Set BLUE LED pin as an output } void loop() { // Set RGB color to teal setColor(0, 201, 204); delay(1000); // Wait for 1 second // Set RGB color to soft red setColor(247, 120, 138); delay(1000); // Wait for 1 second // Set RGB color to green setColor(52, 168, 83); delay(1000); // Wait for 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); // Write RED value to RED LED analogWrite(PIN_GREEN, G); // Write GREEN value to GREEN LED analogWrite(PIN_BLUE, B); // Write BLUE value to BLUE to LED }

Kiến Thức Bổ Sung

  • Để thiết lập RGB LED với Anode chung:
    • Kết nối chân chung với chân 3.3V trên Arduino UNO R4.
    • Trong hàm analogWrite(), điều chỉnh các giá trị R, G, và B thành 255 - R, 255 - G, và 255 - B tương ứng.
  • Một chuỗi RGB LED kết nối với nhau tạo thành một RGB LED Strip. Có hai loại LED Strip: addressable và non-addressable. Chúng tôi sẽ cung cấp hướng dẫn cho từng loại.

Bình Luận