ESP32 Dải LED

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

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

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×Cáp USB Type-C
1×Relay
1×Dải LED 1 màu 12V
1×Dải LED RGB 12V
1×Adapter nguồn 12V
1×Jack nguồn DC
1×Dây jumper
1×(Thay thế) Dải LED 1 màu 24V
1×(Thay thế) Dải LED RGB 24V
1×(Thay thế) Adapter nguồn 24V
1×(Tùy chọn) Adapter nguồn 5V cho ESP32
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Dải LED

Dải LED, còn được gọi là LED tape hoặc LED ribbon, là một bo mạch mềm với các LED được gắn trên bề mặt để phát sáng. Những dải LED này rất linh hoạt và thường được sử dụng cho ánh sáng trang trí trong nhiều ứng dụng khác nhau. Dải LED có nhiều màu sắc khác nhau và thường được sử dụng để tạo ánh sáng xung quanh, ánh sáng nhấn mạnh hoặc hiệu ứng ánh sáng trang trí.

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

  • Dải LED có thể điều khiển từng LED (Addressable LED Strips): Ở 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 là do mỗi LED được gán một địa chỉ cụ thể.
  • Dải LED không thể điều khiển từng LED (Non-Addressable LED Strips): Ngược lại, dải LED không thể điều khiển từng LED cho phép điều khiển màu sắc và độ sáng, nhưng việc điều khiển này áp dụng đồng nhất cho tất cả các LED trên dải.

Hướng dẫn này sẽ tập trung vào Dải LED Không Thể Điều Khiển Từng LED. Đối với Dải LED Có Thể Điều Khiển Từng LED, vui lòng tham khảo các hướng dẫn sau:

Sơ Đồ Chân Dải LED Không Thể Điều Khiển Từng LED

Dải LED Không Thể Điều Khiển Từng LED có hai loại chính:

  • Dải LED 1 màu không thể điều khiển từng LED: Chỉ có một màu được xác định bởi nhà sản xuất.
  • Dải LED RGB không thể điều khiển từng LED: có thể tạo ra mọi màu sắc

Dải LED 1 Màu Không Thể Điều Khiển Từng LED 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 điện DC 12V hoặc 24V
  • Chân GND: cần được kết nối với chân âm của nguồn điện DC 12V hoặc 24V

Dải LED RGB Không Thể Điều Khiển Từng LED 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 điện DC 12V hoặc 24V
  • Chân R: Chân này được sử dụng để điều khiển màu đỏ. Kết nối chân này với chân âm của nguồn điện sẽ kích hoạt màu đỏ
  • Chân G: Chân này được sử dụng để điều khiển màu xanh lá. Kết nối chân này với chân âm của nguồn điện sẽ kích hoạt màu xanh lá
  • Chân B: Chân này được sử dụng để điều khiển màu xanh dương. Kết nối chân này với chân âm của nguồn điện sẽ kích hoạt màu xanh dương
ESP32 non-addressable LED strip sơ đồ chân

Chúng ta sẽ học cách điều khiển cả hai loại bằng ESP32 từng cái một.

Cách Điều Khiển Dải LED 1 Màu Không Thể Điều Khiển Từng LED

Nếu dải LED 12V được cấp nguồn bởi nguồn điện 12V, nó sẽ phát sáng. Để điều khiển dải LED 12V, chúng ta cần sử dụng relay ở giữa ESP32 và dải LED 12V. ESP32 có thể điều khiển dải LED 12V thông qua relay. Chưa quen với relay, bao gồm sơ đồ chân, chức năng và lập trình? hãy tìm hiểu về relay trong ESP32 - Relay

Sơ Đồ Kết Nối

Sơ Đồ Kết Nối giữa ESP32 và Dải LED 1 Màu Không Thể Điều Khiển Từng LED

ESP32 12v LED strip sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

Sơ Đồ Kết Nối giữa ESP32 và Dải LED RGB Không Thể Điều Khiển Từng LED

ESP32 12v LED strip sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code ESP32

Code ESP32 cho việc điều khiển Dải LED 1 Màu Không Thể Điều Khiển Từng LED

Code dưới đây sẽ liên tục bật dải LED trong 5 giây và tắt trong 5 giây,

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-led-strip */ #define LED_STRIP_PIN 16 // The ESP32 pin GPIO16 controls to the LED strip via relay void setup() { Serial.begin(9600); // initialize ESP32 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); }

Code ESP32 cho việc điều khiển Dải LED RGB Không Thể Điều Khiển Từng LED

Code dưới đây sẽ liên tục điều khiển màu sắc của dải LED RGB (đỏ, xanh lá, xanh dương, vàng, magenta, cyan và trắng)

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-led-strip */ #define BLUE_PIN 23 // The ESP32 pin GPIO23 connects to the blue pin of LED strip via relay 1 #define RED_PIN 22 // The ESP32 pin GPIO22 connects to the red pin of LED strip via relay 2 #define GREEN_PIN 21 // The ESP32 pin GPIO21 connects to the green pin of LED strip via relay 3 void setup() { Serial.begin(9600); // initialize ESP32 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); }

Các Bước Nhanh

  • Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện kết nối như hình trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Kết nối ESP32 với PC qua cáp USB
  • Mở Arduino IDE, chọn đúng bo mạch và cổng
  • Copy code trên và mở bằng Arduino IDE
  • Nhấp nút Upload trên Arduino IDE để tải code lên ESP32
  • Kiểm tra trạng thái của dải LED

Giải Thích Code

Đọc giải thích từng dòng trong các dòng comment của code!

Xin lưu ý rằng, để điều khiển độ sáng và các màu sắc khác của dải LED không thể điều khiển từng LED, chúng ta cần sử dụng driver L298N thay vì relay

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.

Bình Luận