Hướng dẫn này trình bày cách điều khiển độ sáng của đèn LED bằng vi điều khiển ESP32, cụ thể là Bộ Kit Học IoT ESP32 SunFounder (trong video tại 00:04). Dự án này lý tưởng cho người mới bắt đầu tìm hiểu về điều chế độ rộng xung (PWM) và các ứng dụng của nó trong việc điều khiển cường độ của nguồn sáng. Khả năng PWM tích hợp của ESP32 cho phép điều khiển mượt mà, chính xác, mở ra nhiều khả năng cho các dự án sáng tạo.
Ứng dụng thực tế:
Tạo hệ thống chiếu sáng xung quanh với độ sáng có thể điều chỉnh.
Xây dựng đèn ngủ đơn giản với hiệu ứng mờ dần.
Phát triển đèn chỉ báo động cho các trạng thái khác nhau (ví dụ: pin yếu, kết nối mạng).
Tích hợp với các cảm biến và bộ truyền động khác để tạo ra các hệ thống tương tác phức tạp.
Phần cứng/Linh kiện
Dự án sử dụng Bộ Kit Khởi Đầu ESP32 SunFounder (trong video tại 00:12), bao gồm vi điều khiển ESP32, bảng mở rộng, các linh kiện khác nhau và pin lithium 18650. Bạn cũng sẽ cần một đèn LED và một điện trở 220 ohm (trong video tại 04:32).
Hướng dẫn đấu dây
Tham khảo sơ đồ đấu dây trong video (trong video tại 01:46 và 04:18) và phần giải thích chi tiết tại mốc thời gian 04:40. Việc đấu dây bao gồm kết nối cực dương của LED với điện trở, điện trở với chân GPIO 26 của ESP32, và cực âm của LED với đất.
LED_với_Điện_trở
LED mắc nối tiếp với điện trở 220 ohm. Dưới đây là cách đấu dây trên breadboard.
LED_mờ_dần_ESP32
Giải thích mã code
Mã Arduino sử dụng Điều chế độ rộng xung (PWM) để điều khiển độ sáng của LED. Các phần có thể cấu hình chính là:
ledPin: Xác định chân GPIO kết nối với LED (trong video tại 09:41, được đặt là 26). Thay đổi giá trị này nếu bạn sử dụng chân khác.
fadeAmount: Điều khiển tốc độ thay đổi độ sáng của LED (trong video tại 10:06). Giá trị cao hơn dẫn đến hiệu ứng mờ dần nhanh hơn. Mã code tự động đảo chiều khi độ sáng đạt giá trị tối thiểu (0) hoặc tối đa (255) (trong video tại 11:44).
const int ledPin = 26; // Chân GPIO cho LED
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttachPin(ledPin, 0); // Gắn chân vào kênh PWM
}
void loop() {
ledcWrite(ledPin, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50);
}
Dự án/Demo trực tiếp
Video trình bày hiệu ứng LED mờ dần đang hoạt động (trong video tại 14:51). Giảng viên hướng dẫn cách điều chỉnh biến fadeAmount để kiểm soát tốc độ mờ dần (trong video tại 15:16 và 15:51). Quá trình tải mã lên ESP32 cũng được trình bày (trong video tại 14:20).
791-ESP32 Tutorial 5/55 - LED Fade, control brightness of an LED in Arduino
Ngôn ngữ: C++
const int ledPin = 26; // The GPIO pin for the LED
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttach(ledPin, 5000, 8); // Attach the LED pin
}
void loop() {
ledcWrite(ledPin, brightness); // Write the new brightness value to the PWM pin
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50); // Wait for 50 milliseconds
}
Tiết lộ: Là một đối tác của Amazon, chúng tôi kiếm tiền từ các giao dịch đủ điều kiện. Điều này có nghĩa là chúng tôi có thể nhận được một khoản hoa hồng nhỏ nếu bạn nhấp vào liên kết và thực hiện một giao dịch mà không tốn thêm chi phí nào cho bạn.