Acest tutorial demonstrează cum să controlezi luminozitatea unui LED folosind un microcontroler ESP32, mai exact kitul de învățare IoT SunFounder ESP32 (în video la 00:04). Acest proiect este ideal pentru începătorii care învață despre modularea lățimii impulsurilor (PWM) și aplicațiile acesteia în controlul intensității surselor de lumină. Capabilitățile PWM integrate ale ESP32 permit un control lin și precis, deschizând o lume de posibilități pentru proiecte creative.
Aplicații practice:
Crearea sistemelor de iluminare ambientală cu luminozitate reglabilă.
Construirea unei lumini de veghe simple cu estompare treptată.
Dezvoltarea unei lumini indicatoare dinamice pentru diverse stări (de exemplu, baterie descărcată, conexiune la rețea).
Integrarea cu alți senzori și actuatoare pentru a crea instalații interactive complexe.
Hardware/Componente
Proiectul utilizează kitul de pornire SunFounder ESP32 (în video la 00:12), care include un microcontroler ESP32, o placă de extensie, diverse componente și o baterie litiu 18650. Vei avea nevoie și de un LED și un rezistor de 220 ohmi (în video la 04:32).
Ghid de cablare
Consultați schema de cablare din video (în video la 01:46 și 04:18) și explicația detaliată la marcajul temporal 04:40. Cablarea implică conectarea anodului LED-ului la rezistor, a rezistorului la pinul GPIO 26 al ESP32 și a catodului LED-ului la masă.
LED_cu_Rezistor
LED în serie cu un rezistor de 220 ohmi. Mai jos este cablarea pe breadboard.
LED_estompare_ESP32
Explicația codului
Codul Arduino utilizează modularea lățimii impulsurilor (PWM) pentru a controla luminozitatea LED-ului. Părțile cheie configurabile sunt:
ledPin: Definește pinul GPIO conectat la LED (în video la 09:41, setat la 26). Schimbă acest lucru dacă folosești un alt pin.
fadeAmount: Controlează rata la care se schimbă luminozitatea LED-ului (în video la 10:06). O valoare mai mare duce la o estompare mai rapidă. Codul inversează automat direcția când luminozitatea atinge valoarea minimă (0) sau maximă (255) (în video la 11:44).
const int ledPin = 26; // Pinul GPIO pentru LED
int brightness = 0;
int fadeAmount = 5;
void setup() {
ledcAttachPin(ledPin, 0); // Atașează pinul la canalul PWM
}
void loop() {
ledcWrite(ledPin, brightness);
brightness = brightness + fadeAmount;
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
delay(50);
}
Proiect live/Demonstrație
Video-ul demonstrează LED-ul cu estompare în acțiune (în video la 14:51). Instructorul arată cum să ajustezi variabila fadeAmount pentru a controla viteza estompării (în video la 15:16 și 15:51). Procesul de încărcare a codului pe ESP32 este de asemenea prezentat (în video la 14:20).
791-ESP32 Tutorial 5/55 - LED Fade, control brightness of an LED in Arduino
Limba: 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
}
Divulgare: Ca asociat Amazon, câștigăm din achizițiile eligibile. Aceasta înseamnă că putem primi un mic comision dacă dai clic pe un link și faci o achiziție fără costuri suplimentare pentru tine.