Samouczek ESP32 6/55 - Użycie diody RGB Projekt 2.3 - Zestaw edukacyjny SunFounder ESP32 IoT
W tym samouczku nauczymy się, jak sterować diodą RGB LED za pomocą mikrokontrolera ESP32. Ten projekt pomoże Ci zrozumieć, jak podłączyć diodę RGB LED i sterować jej kolorami za pomocą sygnałów PWM (modulacja szerokości impulsu). Po ukończeniu tego samouczka będziesz w stanie tworzyć dowolne kombinacje kolorów, regulując intensywność każdego elementu diody. Jest to podstawowa umiejętność potrzebna do tworzenia atrakcyjnych wizualnie projektów.

Aby lepiej zrozumieć diodę RGB LED i jej możliwości mieszania kolorów, przyjrzymy się okablowaniu i kodowi potrzebnemu do sterowania nią za pomocą ESP32. Jeśli potrzebujesz pomocy wizualnej, obejrzyj wideo (na filmie o 03:20), aby uzyskać jaśniejsze wyjaśnienie okablowania i konfiguracji kodu.
Omówienie Sprzętu
Główne elementy tego projektu to moduł ESP32, dioda RGB LED oraz rezystory. ESP32 to wydajny mikrokontroler z wbudowanym Wi-Fi i Bluetooth, co czyni go idealnym do zastosowań IoT. Dioda RGB LED składa się z trzech pojedynczych diod (czerwonej, zielonej i niebieskiej) umieszczonych w jednej obudowie, co pozwala na uzyskanie szerokiej gamy kolorów w zależności od kombinacji tych trzech barw.
W naszym układzie dioda RGB LED będzie podłączona w konfiguracji ze wspólną anodą, gdzie pin anody jest podłączony do dodatniego napięcia, a pin katody każdego koloru jest sterowany niezależnie. W ten sposób możemy regulować jasność każdego koloru, wysyłając sygnały PWM przez ESP32.
Szczegóły z Karty Katalogowej
| Producent | SunFounder |
|---|---|
| Numer części | RGB-LED-4PIN |
| Typ wspólny | Wspólna anoda |
| Napięcie przewodzenia (na diodę) | 2,0 V (czerwona), 3,2 V (zielona), 3,2 V (niebieska) |
| Maksymalny prąd (na diodę) | 20 mA |
| Temperatura pracy | -25 do 85 °C |
| Obudowa | 4-pinowa przewlekana (Through-hole) |
- Użyj rezystora 220 Ω dla każdego koloru, aby ograniczyć prąd i zapobiec uszkodzeniu.
- Upewnij się, że wspólny pin jest podłączony do odpowiedniego napięcia (3,3 V dla ESP32).
- Sprawdź dwukrotnie polaryzację podczas podłączania diody RGB LED, aby uniknąć uszkodzenia w wyniku odwrotnego podłączenia.
- Użyj PWM do sterowania poziomami jasności, zalecana częstotliwość około 5000 Hz.
- Przetestuj każdy kolor osobno przed podłączeniem całego układu.
Instrukcje Okablowania
Aby podłączyć diodę RGB LED do ESP32, zacznij od zidentyfikowania pinów na diodzie RGB LED. Najdłuższy pin to wspólna anoda, którą podłączysz do zasilania 3,3 V na ESP32. Pozostałe trzy piny to czerwony, zielony i niebieski. W naszym układzie podłącz czerwony pin do GPIO 27, zielony pin do GPIO 26, a niebieski pin do GPIO 25. Do każdego z tych pinów będzie również podłączony rezystor 220 Ω.
Zacznij od umieszczenia diody RGB LED na płytce stykowej, upewniając się, że pin wspólnej anody jest po lewej stronie. Włóż czerwony pin do płytki stykowej i podłącz go do jednego końca rezystora, a drugi koniec rezystora do GPIO 27. Powtórz to dla pinów zielonego i niebieskiego, podłączając zielony pin do GPIO 26, a niebieski pin do GPIO 25. Na koniec podłącz wspólny pin do pinu 3,3 V na ESP32, aby zamknąć obwód. Upewnij się również, że masa (GND) ESP32 jest podłączona do płytki stykowej.

Przykłady Kodu i Omówienie
W kodzie zaczynamy od zdefiniowania pinów diody RGB LED za pomocą stałych. Na przykład const int redPin = 27; definiuje pin GPIO dla diody czerwonej. Ustawiamy również częstotliwość i rozdzielczość PWM za pomocą const int freq = 5000; i const int resolution = 8;. To konfiguruje niezbędne parametry do sterowania jasnością każdego koloru diody.
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
Następnie konfigurujemy kanały PWM dla każdego koloru w funkcji setup(). Funkcja ledcAttach() łączy każdy pin z odpowiednim kanałem PWM. Ta konfiguracja zapewnia, że możemy sterować jasnością każdego koloru niezależnie.
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
W funkcji loop() używamy funkcji setColor() do zmiany kolorów diody. Wartości przekazywane do tej funkcji reprezentują intensywność koloru czerwonego, zielonego i niebieskiego. Na przykład wywołanie setColor(255, 0, 0); ustawia diodę na kolor czerwony. Po każdej zmianie koloru używamy delay(1000);, aby odczekać jedną sekundę przed przełączeniem na następny kolor.
void loop() {
setColor(255, 0, 0); // Czerwony
delay(1000);
setColor(0, 255, 0); // Zielony
delay(1000);
}
Demonstracja / Czego Się Spodziewać
Po zakończeniu okablowania i wgraniu kodu do ESP32 powinieneś zobaczyć, jak dioda RGB LED przechodzi przez różne kolory: czerwony, zielony, niebieski, żółty, fioletowy i cyjan. Jeśli dioda nie świeci się prawidłowo, sprawdź dwukrotnie okablowanie i upewnij się, że wspólna anoda jest podłączona do 3,3 V. Dodatkowo, jeśli zauważysz nieoczekiwane kolory, zweryfikuj połączenia rezystorów z pinami diody.
Jak pokazano na filmie (na filmie o 10:45), regulacja wartości w funkcji setColor() pozwala tworzyć różne kolory. Eksperymentuj z różnymi kombinacjami, aby zobaczyć, jak reaguje dioda RGB LED.
Znaczniki Czasowe Filmu
- 00:00 - Wprowadzenie do diody RGB LED
- 03:20 - Wyjaśnienie podłączenia
- 10:45 - Omówienie kodu
- 12:30 - Demonstracja mieszania kolorów
// 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
Zasoby i odniesienia
-
DokumentacjaESP32 Tutorial 6/55 - SunFounder RGB LED doc pagedocs.sunfounder.com
Pliki📁
Brak dostępnych plików.