Ten poradnik pokazuje, jak kontrolować jasność diody LED za pomocą mikrokontrolera ESP32, a konkretnie zestawu edukacyjnego SunFounder ESP32 IoT Learning Kit (na filmie w 00:04). Ten projekt jest idealny dla początkujących uczących się modulacji szerokości impulsu (PWM) i jej zastosowań w kontrolowaniu intensywności źródeł światła. Wbudowane funkcje PWM w ESP32 umożliwiają płynną, precyzyjną kontrolę, otwierając świat możliwości dla kreatywnych projektów.
Praktyczne zastosowania:
Tworzenie systemów oświetlenia ambientowego z regulowaną jasnością.
Budowa prostej lampki nocnej z płynnym przygaszaniem.
Opracowanie dynamicznej diody sygnalizacyjnej dla różnych stanów (np. niski poziom baterii, połączenie sieciowe).
Integracja z innymi czujnikami i siłownikami w celu tworzenia złożonych instalacji interaktywnych.
Sprzęt/Komponenty
Projekt wykorzystuje zestaw startowy SunFounder ESP32 Starter Kit (na filmie w 00:12), który zawiera mikrokontroler ESP32, płytkę rozszerzającą, różne komponenty oraz baterię litową 18650. Będziesz również potrzebować diody LED i rezystora 220 omów (na filmie w 04:32).
Schemat połączeń
Zapoznaj się ze schematem połączeń na filmie (na filmie w 01:46 i 04:18) oraz szczegółowym wyjaśnieniem w czasie 04:40. Połączenie polega na podłączeniu anody diody LED do rezystora, rezystora do pinu GPIO 26 w ESP32 oraz katody diody LED do masy.
LED_z_Rezystorem
Dioda LED połączona szeregowo z rezystorem 220 omów. Poniżej znajduje się połączenie na płytce stykowej.
LED_przygaszanie_ESP32
Wyjaśnienie kodu
Kod Arduino wykorzystuje modulację szerokości impulsu (PWM) do kontrolowania jasności diody LED. Kluczowe konfigurowalne elementy to:
ledPin: Określa pin GPIO podłączony do diody LED (na filmie w 09:41, ustawiony na 26). Zmień to, jeśli używasz innego pinu.
fadeAmount: Kontroluje szybkość, z jaką zmienia się jasność diody LED (na filmie w 10:06). Wyższa wartość powoduje szybsze przygaszanie. Kod automatycznie odwraca kierunek, gdy jasność osiągnie wartość minimalną (0) lub maksymalną (255) (na filmie w 11:44).
const int ledPin = 26; // Pin GPIO dla diody LED
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttachPin(ledPin, 0); // Przypisz pin do kanału PWM
}
void loop() {
ledcWrite(ledPin, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50);
}
Projekt na żywo/Demonstracja
Film pokazuje działającą diodę LED z płynnym przygaszaniem (na filmie w 14:51). Instruktor pokazuje, jak dostosować zmienną fadeAmount, aby kontrolować szybkość przygaszania (na filmie w 15:16 i 15:51). Proces przesyłania kodu do ESP32 jest również pokazany (na filmie w 14:20).
791-ESP32 Tutorial 5/55 - LED Fade, control brightness of an LED in Arduino
Język: 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
}
Ujawnienie: Jako partner Amazonu, zarabiamy na kwalifikujących się zakupach. Oznacza to, że możemy otrzymać małą prowizję, jeśli klikniesz w link i dokonasz zakupu bez dodatkowych kosztów dla Ciebie.