ESP32 Tutorijal 6/55 - Korištenje RGB LED projekta 2.3 -SunFounder-ov ESP32 IoT komplet za učenje
U ovom tutorijalu naučit ćemo kako kontrolisati RGB LED koristeći ESP32 mikrokontroler. Ovaj projekat će vam pomoći da razumijete kako spojiti RGB LED i kontrolisati njegove boje koristeći PWM (Pulse Width Modulation) signale. Do kraja ovog tutorijala, moći ćete kreirati bilo koju kombinaciju boja podešavanjem intenziteta svake LED komponente. Ovo je osnovna vještina za kreiranje vizuelno privlačnih projekata.

Da bismo bolje razumjeli RGB LED i njegove mogućnosti miješanja boja, istražit ćemo ožičenje i kod potreban za njegovu kontrolu sa ESP32. Ako vam je potrebna vizuelna pomoć, svakako pogledajte video (u videu na 03:20) za jasnije objašnjenje ožičenja i postavke koda.
Objašnjenje hardvera
Glavne komponente ovog projekta uključuju ESP32 modul, RGB LED i otpornike. ESP32 je moćan mikrokontroler koji ima ugrađen Wi-Fi i Bluetooth, što ga čini idealnim za IoT aplikacije. RGB LED se sastoji od tri pojedinačne LED diode (crvene, zelene i plave) smještene u jednom pakovanju, što omogućava širok spektar boja na osnovu kombinacije tri boje.
U našoj postavci, RGB LED će biti spojen u konfiguraciji sa zajedničkom anodom, gdje je anodni pin spojen na pozitivni napon, a katodni pin svake boje se kontroliše nezavisno. Na ovaj način možemo podesiti svjetlinu svake boje slanjem PWM signala kroz ESP32.
Detalji iz tehničke dokumentacije
| Proizvođač | SunFounder |
|---|---|
| Broj dijela | RGB-LED-4PIN |
| Uobičajeni tip | Zajednička anoda |
| Napon provođenja (po LED diodi) | 2.0 V (crvena), 3.2 V (zelena), 3.2 V (plava) |
| Maksimalna struja (po LED diodi) | 20 mA |
| Radna temperatura | -25 do 85 °C |
| Pakovanje | 4-pinski Through-hole |
- Koristite otpornik od 220 Ω za svaku boju kako biste ograničili struju i spriječili oštećenje.
- Provjerite da je zajednički pin spojen na odgovarajući napon (3.3 V za ESP32).
- Dvaput provjerite polaritet prilikom povezivanja RGB LED-a kako biste izbjegli oštećenje zbog obrnutog napona.
- Koristite PWM za kontrolu nivoa svjetline, s preporučenom frekvencijom od oko 5000 Hz.
- Testirajte svaku boju pojedinačno prije povezivanja cijele postavke.
Upute za ožičenje
Da biste spojili RGB LED na ESP32, počnite identifikacijom pinova na RGB LED-u. Najduži pin je zajednička anoda, koja će se spojiti na napajanje od 3.3 V na ESP32. Ostala tri pina su za crvenu, zelenu i plavu boju. U našoj postavci, spojite crveni pin na GPIO 27, zeleni pin na GPIO 26, a plavi pin na GPIO 25. Svaki od ovih pinova također će imati spojen otpornik od 220 Ω.
Počnite postavljanjem RGB LED-a na breadboard, pazeći da je zajednički anodni pin na lijevoj strani. Umetnite crveni pin u breadboard i spojite ga na jedan kraj otpornika, s drugim krajem otpornika koji ide na GPIO 27. Ponovite ovo za zeleni i plavi pin, spajajući zeleni pin na GPIO 26 i plavi pin na GPIO 25. Na kraju, spojite zajednički pin na pin od 3.3 V na ESP32 kako biste dovršili krug. Obavezno spojite i uzemljenje ESP32-a na breadboard.

Primjeri koda i objašnjenje
U kodu, počinjemo definiranjem pinova RGB LED-a koristeći konstante. Na primjer, const int redPin = 27; definira GPIO pin za crvenu LED diodu. Također postavljamo PWM frekvenciju i rezoluciju s const int freq = 5000; i const int resolution = 8;. Ovo postavlja potrebne parametre za kontrolu svjetline svake LED boje.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
Zatim konfigurišemo PWM kanale za svaku boju u setup() funkciji. Funkcija ledcAttach() povezuje svaki pin s odgovarajućim PWM kanalom. Ova postavka osigurava da možemo kontrolisati svjetlinu svake boje nezavisno.
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
U loop() funkciji koristimo setColor() funkciju za promjenu boja LED-a. Vrijednosti proslijeđene ovoj funkciji predstavljaju intenzitet crvene, zelene i plave boje. Na primjer, pozivanje setColor(255, 0, 0); postavlja LED na crvenu boju. Nakon svake promjene boje, koristimo delay(1000); da sačekamo jednu sekundu prije prelaska na sljedeću boju.
void loop() {
setColor(255, 0, 0); // Crvena
delay(1000);
setColor(0, 255, 0); // Zelena
delay(1000);
}
Demonstracija / Šta očekivati
Nakon što dovršite ožičenje i prenesete kod na ESP32, trebali biste vidjeti kako RGB LED prolazi kroz različite boje: crvenu, zelenu, plavu, žutu, ljubičastu i cijan. Ako LED ne svijetli ispravno, dvaput provjerite ožičenje i osigurajte da je zajednička anoda spojena na 3.3 V. Dodatno, ako primijetite neočekivane boje, provjerite spojeve otpornika na pinove LED-a.
Kao što je demonstrirano u videu (u videu na 10:45), podešavanje vrijednosti u setColor() funkciji omogućava vam kreiranje različitih boja. Eksperimentišite s različitim kombinacijama kako biste vidjeli kako RGB LED reagira.
Vremenske oznake u videu
- 00:00 - Uvod u RGB LED
- 03:20 - Objašnjenje povezivanja
- 10:45 - Pregled koda
- 12:30 - Demonstracija miješanja boja
// 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
Resources & references
-
DocumentationESP32 Tutorial 6/55 - SunFounder RGB LED doc pagedocs.sunfounder.com
Files📁
No files available.