Search Code

Samouczek ESP32 6/55 - Użycie diody RGB Projekt 2.3 - Zestaw edukacyjny SunFounder ESP32 IoT

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

ProducentSunFounder
Numer częściRGB-LED-4PIN
Typ wspólnyWspó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
Obudowa4-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.

ESP32_RGB_LED_wiring_lesson_06

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

Obrazy

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_RGB_LED_wiring_lesson_06
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32
Język: C++
// 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);
}

Zasoby i odniesienia

Pliki📁

Brak dostępnych plików.