Tutorial ESP32 6/55 - Utilizarea LED-ului RGB Proiectul 2.3 - Kitul de învățare IoT ESP32 de la SunFounder
În acest tutorial, vom învăța cum să controlăm un LED RGB folosind microcontrolerul ESP32. Acest proiect te va ajuta să înțelegi cum să conectezi LED-ul RGB și să-i controlezi culorile folosind semnale PWM (modulație în lățime a impulsurilor). La sfârșitul acestui tutorial, vei putea crea orice combinație de culori prin ajustarea intensității fiecărei componente LED. Aceasta este o abilitate fundamentală pentru crearea de proiecte vizual captivante.

Pentru a înțelege mai bine LED-ul RGB și capacitățile sale de amestecare a culorilor, vom explora cablarea și codul necesar pentru a-l controla cu ESP32. Dacă ai nevoie de asistență vizuală, asigură-te că verifici videoclipul (în videoclip la 03:20) pentru o explicație mai clară a cablării și a configurării codului.
Hardware Explicat
Componentele principale ale acestui proiect includ modulul ESP32, LED-ul RGB și rezistențele. ESP32 este un microcontroler puternic care are încorporate Wi-Fi și Bluetooth, fiind ideal pentru aplicații IoT. LED-ul RGB constă din trei LED-uri individuale (roșu, verde și albastru) găzduite într-un singur pachet, permițând o gamă largă de culori bazată pe combinația celor trei culori.
În configurarea noastră, LED-ul RGB va fi conectat într-o configurație cu anod comun, unde pinul anodului este conectat la o tensiune pozitivă, iar pinul catodului fiecărei culori este controlat independent. Astfel, putem ajusta luminozitatea fiecărei culori trimițând semnale PWM prin ESP32.
Detalii din Fișa Tehnică
| Producător | SunFounder |
|---|---|
| Număr de piesă | RGB-LED-4PIN |
| Tip comun | Anod comun |
| Tensiune directă (per LED) | 2,0 V (roșu), 3,2 V (verde), 3,2 V (albastru) |
| Curent maxim (per LED) | 20 mA |
| Temperatură de operare | -25 până la 85 °C |
| Pachet | 4 pini, gaură traversantă |
- Folosește un rezistor de 220 Ω pentru fiecare culoare pentru a limita curentul și a preveni deteriorarea.
- Asigură-te că pinul comun este conectat la tensiunea corespunzătoare (3,3 V pentru ESP32).
- Verifică de două ori polaritatea când conectezi LED-ul RGB pentru a evita deteriorarea prin inversare.
- Folosește PWM pentru a controla nivelurile de luminozitate, cu o frecvență în jur de 5000 Hz recomandată.
- Testează fiecare culoare individual înainte de a cabla întreaga configurație.
Instrucțiuni de Cablare
Pentru a cabla LED-ul RGB la ESP32, începe prin identificarea pinilor de pe LED-ul RGB. Cel mai lung pin este anodul comun, care se va conecta la sursa de 3,3 V de pe ESP32. Ceilalți trei pini sunt pentru roșu, verde și albastru. În configurarea noastră, conectează pinul roșu la GPIO 27, pinul verde la GPIO 26 și pinul albastru la GPIO 25. Fiecare dintre acești pini va avea, de asemenea, un rezistor de 220 Ω conectat la ei.
Începe prin a plasa LED-ul RGB pe breadboard, asigurându-te că pinul anodului comun este pe stânga. Introdu pinul roșu în breadboard și conectează-l la un capăt al rezistorului, celălalt capăt al rezistorului mergând la GPIO 27. Repetă acest lucru pentru pinii verde și albastru, conectând pinul verde la GPIO 26 și pinul albastru la GPIO 25. În final, conectează pinul comun la pinul de 3,3 V de pe ESP32 pentru a completa circuitul. Asigură-te că conectezi și masa ESP32 la breadboard.

Exemple de Cod și Explicații
În cod, începem prin a defini pinii LED-ului RGB folosind constante. De exemplu, const int redPin = 27; definește pinul GPIO pentru LED-ul roșu. De asemenea, setăm frecvența PWM și rezoluția cu const int freq = 5000; și const int resolution = 8;. Aceasta configurează parametrii necesari pentru controlul luminozității fiecărei culori LED.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
În continuare, configurăm canalele PWM pentru fiecare culoare în funcția setup(). Funcția ledcAttach() leagă fiecare pin de canalul PWM corespunzător. Această configurare asigură că putem controla luminozitatea fiecărei culori independent.
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
În funcția loop(), folosim funcția setColor() pentru a schimba culorile LED-ului. Valorile transmise acestei funcții reprezintă intensitatea roșului, verdele și albastrului. De exemplu, apelarea setColor(255, 0, 0); setează LED-ul la roșu. După fiecare schimbare de culoare, folosim delay(1000); pentru a aștepta o secundă înainte de a trece la următoarea culoare.
void loop() {
setColor(255, 0, 0); // Roșu
delay(1000);
setColor(0, 255, 0); // Verde
delay(1000);
}
Demonstrație / Ce să Te Aștepți
După finalizarea cablării și încărcarea codului pe ESP32, ar trebui să vezi LED-ul RGB ciclând prin diverse culori: roșu, verde, albastru, galben, mov și cyan. Dacă LED-ul nu se aprinde corect, verifică de două ori cablarea și asigură-te că anodul comun este conectat la 3,3 V. În plus, dacă observi culori neașteptate, verifică conexiunile rezistorilor la pinii LED-ului.
După cum este demonstrat în videoclip (în videoclip la 10:45), ajustarea valorilor din funcția setColor() îți permite să creezi diferite culori. Experimentează cu diverse combinații pentru a vedea cum răspunde LED-ul RGB.
Marcaje Temporale din Videoclip
- 00:00 - Introducere în LED-ul RGB
- 03:20 - Explicația conexiunilor
- 10:45 - Parcurgerea codului
- 12:30 - Demonstrația amestecării culorilor
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;
void setup() {
// Set up PWM pins
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
void loop() {
setColor(255, 0, 0); // Red
delay(1000);
setColor(0, 255, 0); // Green
delay(1000);
setColor(0, 0, 255); // Blue
delay(1000);
setColor(255, 255, 0); // Yellow
delay(1000);
setColor(80, 0, 80); // Purple
delay(1000);
setColor(0, 255, 255); // Cyan
delay(1000);
}
void setColor(int red, int green, int blue) {
ledcWrite(redPin, red);
ledcWrite(greenPin, green);
ledcWrite(bluePin, blue);
}
Common Course Links
Common Course Files
Resurse și referințe
-
DocumentațieESP32 Tutorial 6/55 - SunFounder RGB LED doc pagedocs.sunfounder.com
Fișiere📁
Nu sunt disponibile fișiere.