Arduino Dải đèn LED

Trong hướng dẫn này, chúng ta sẽ học cách lập trình Arduino để điều khiển một dải đèn LED phát sáng.

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×Relay
1×12V 1-color LED Strip
1×12V RGB LED Strip
1×12V Power Adapter
1×DC Power Jack
1×dây jumper
1×(Hoặc) 24V 1-color LED Strip
1×(Hoặc) 24V RGB LED Strip
1×(Hoặc) 24V Power Adapter
1×(Tùy chọn) 5V Power Adapter for Arduino
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ề dải đèn LED

Một dải LED, còn được gọi là băng LED hoặc dây LED, là một bảng mạch linh hoạt với các đèn LED gắn trên bề mặt phát sáng. Những dải này rất linh hoạt và thường được sử dụng cho chiếu sáng trang trí trong nhiều ứng dụng khác nhau. Dải LED có nhiều màu sắc và thường được dùng để cung cấp ánh sáng nền, ánh sáng nhấn mạnh, hoặc các hiệu ứng chiếu sáng trang trí.

Dải đèn LED có hai loại chính:

  • Dải LED có thể định địa chỉ: Ở loại này, màu sắc và độ sáng của từng LED riêng lẻ trên dải có thể được điều khiển độc lập. Khả năng này nhờ mỗi LED được gán một địa chỉ cụ thể.
  • Dải LED không có địa chỉ: Ngược lại, dải LED không có địa chỉ cho phép kiểm soát màu sắc và độ sáng, nhưng sự kiểm soát này áp dụng đồng đều cho tất cả các LED trên dải.

Hướng dẫn này sẽ tập trung vào các dải LED không định địa chỉ. Đối với dải LED có định địa chỉ, vui lòng tham khảo các bài hướng dẫn sau:

Sơ đồ chân dải LED không có địa chỉ

Dải LED không có địa chỉ có hai loại chính:

  • Dải đèn LED không định địa chỉ một màu: Chỉ có một màu được nhà sản xuất xác định.
  • Dải LED RGB không định địa chỉ: bất kỳ màu nào.

Một dải LED 1 màu không có địa chỉ thường có hai chân:

  • Chân 12V/24V: cần được kết nối với chân dương của nguồn cấp DC 12V hoặc 24V
  • Chân GND: cần được kết nối với chân âm của nguồn cấp DC 12V hoặc 24V

Một dải LED RGB không có địa chỉ thường có bốn chân:

  • Chân 12V/24V: cần được kết nối với chân dương của nguồn cấp điện DC 12V hoặc 24V.
  • Chân R: Chân này được dùng để điều khiển màu đỏ. Nối chân này với chân âm của nguồn cấp điện sẽ kích hoạt màu đỏ.
  • Chân G: Chân này được dùng để điều khiển màu xanh lá cây. Nối chân này với chân âm của nguồn cấp điện sẽ kích hoạt màu xanh lá cây.
  • Chân B: Chân này được dùng để điều khiển màu xanh lam. Nối chân này với chân âm của nguồn cấp điện sẽ kích hoạt màu xanh lam.
sơ đồ chân của dải đèn LED không định địa chỉ dành cho Arduino

Chúng ta sẽ học cách điều khiển cả hai loại bằng Arduino lần lượt.

Cách điều khiển dải LED một màu không thể định địa chỉ.

Nếu dải đèn LED 12V được cấp nguồn bởi nguồn 12V, nó sẽ phát sáng. Để điều khiển dải đèn LED 12V, chúng ta cần sử dụng một relay ở giữa Arduino và dải đèn LED 12V. Arduino có thể điều khiển dải đèn LED 12V thông qua relay. Nếu bạn chưa biết về relay (cấu hình chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu về relay trong Arduino - rơ-le.

Sơ đồ mạch điện.

Sơ đồ nối giữa Arduino và dải đèn LED 1 màu không có địa chỉ.

sơ đồ nối dây dải LED 12v với Arduino

This image is created using Fritzing. Click to enlarge image

Sơ đồ kết nối giữa Arduino và dải LED RGB không có địa chỉ.

sơ đồ nối dây dải LED 12v cho Arduino

This image is created using Fritzing. Click to enlarge image

Mã Arduino

Mã Arduino để điều khiển dải LED một màu không có địa chỉ.

Mã dưới đây lặp lại việc bật dải LED trong 5 giây và tắt dải LED trong 5 giây.

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-led-strip */ #define LED_STRIP_PIN 3 // the Arduino pin controls to the LED strip via relay void setup() { Serial.begin(9600); // initialize Arduino pins as digital output pins pinMode(LED_STRIP_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { Serial.println("The LED strip is turned on"); digitalWrite(LED_STRIP_PIN, HIGH); delay(5000); Serial.println("The LED strip is turned off"); digitalWrite(LED_STRIP_PIN, LOW); delay(5000); }

Mã Arduino để điều khiển dải đèn LED RGB không có địa chỉ.

Đoạn mã dưới đây điều khiển lặp lại màu của dải LED RGB (đỏ, xanh lá, xanh dương, vàng, magenta, cyan và trắng).

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino 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/arduino-led-strip */ #define BLUE_PIN 5 // the Arduino pin connects to the blue pin of LED strip via relay 1 #define RED_PIN 4 // the Arduino pin connects to the red pin of LED strip via relay 2 #define GREEN_PIN 3 // the Arduino pin connects to the green pin of LED strip via relay 3 void setup() { Serial.begin(9600); // initialize Arduino pins as digital output pins pinMode(BLUE_PIN, OUTPUT); pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); } // the loop function runs over and over again forever void loop() { Serial.println("The LED strip is turned red"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned green"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned blue"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned yellow"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned magenta"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned cyan"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned white"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); }

Hướng dẫn từng bước

  • Kết nối Arduino với PC bằng cáp USB
  • Mở Arduino IDE, chọn đúng board và cổng
  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấn nút Tải lên trên Arduino IDE để nạp mã vào Arduino
  • Kiểm tra trạng thái của dải đèn LED

Giải thích mã nguồn

Bạn có thể tìm lời giải thích trong các dòng chú thích của mã Arduino ở trên.

Xin lưu ý rằng, để điều khiển độ sáng và màu sắc của dải LED không có địa chỉ, chúng ta cần sử dụng bộ điều khiển L298N thay vì rơ-le

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.