ESP32 S3 - RGB-LED

Der ESP32 S3 kann eine RGB-LED ansteuern und durch Mischen von rotem, grünem und blauem Licht über PWM-Signale jede beliebige Farbe erzeugen – so erhalten Sie mit einem einzigen Bauteil über 16 Millionen mögliche Farbkombinationen. Dieses Tutorial führt Sie durch Verdrahtung, Programmierung und die Grundlagen der Farbmischung, damit Sie Ihren ESP32 S3 Projekten eine lebendige visuelle Rückmeldung verleihen können.

Was Sie bauen werden:

  1. Eine Schaltung, die eine RGB-LED (oder ein RGB-LED-Modul) mit dem ESP32 S3 verbindet
  2. Einen Arduino-Sketch, der mit PWM drei verschiedene Farben nacheinander anzeigt
  3. Eine wiederverwendbare Hilfsfunktion setColor() für eine saubere, gut lesbare Farbsteuerung
  4. Eine Grundlage für jedes Projekt, das eine vollfarbige visuelle Ausgabe am ESP32 S3 benötigt
ESP32 S3 - RGB-LED

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×RGB LED
1×(Alternativ) RGB-LED-Modul
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über RGB LED

Eine RGB-LED vereint drei einzelne LEDs – Rot, Grün und Blau – in einem einzigen Gehäuse, sodass sich jede Farbe erzeugen lässt, indem die Helligkeit jedes Elements unabhängig eingestellt wird. Da die drei Lichtquellen sehr nahe beieinander liegen, nimmt das menschliche Auge ihr gemischtes Licht als eine einheitliche Farbe wahr.

Wichtige Spezifikationen

Eine RGB-LED mit gemeinsamer Kathode hat vier Pins: eine gemeinsame Masse und je einen Steuerpin pro Farbkanal. Jeder Kanal verhält sich wie eine Standard-LED mit einer Durchlassspannung von etwa 2–3 V und einer Stromaufnahme von rund 20 mA. Daher ist für jeden Kanal ein Vorwiderstand erforderlich, es sei denn, Sie verwenden ein fertiges RGB-LED-Modul, das bereits Widerstände enthält. Der ESP32 S3 steuert jeden Kanal mit einem PWM-Wert zwischen 0 (aus) und 255 (maximale Helligkeit) an, was 256 Helligkeitsstufen pro Kanal und über 16 Millionen Farbkombinationen ergibt.

RGB-LED-Pinbelegung

Die RGB-LED hat vier Pins, die den einzelnen Leuchtelementen zugeordnet sind:

  1. R-Pin (Rot): Steuert das rote Farbelement
  2. G-Pin (Grün): Steuert das grüne Farbelement
  3. B-Pin (Blau): Steuert das blaue Farbelement
  4. Gemeinsamer Pin (Kathode−): Verbinden Sie diesen Pin mit GND (0 V)
RGB-LED-Pinbelegung

Um eine RGB-LED an den ESP32 S3 anzuschließen, müssen Sie an jedem Farbpin einen Vorwiderstand hinzufügen. Das kann die Verdrahtung verkomplizieren – zum Glück verfügt ein RGB-LED-Modul bereits über eingebaute Vorwiderstände und ist die empfohlene Option für Einsteiger.

Das RGB-LED-Modul hat ebenfalls vier Pins:

  • Gemeinsamer Pin (Kathode−): Muss mit GND (0 V) verbunden werden
  • R (Rot): Pin zur Steuerung von Rot
  • G (Grün): Pin zur Steuerung von Grün
  • B (Blau): Pin zur Steuerung von Blau
RGB-LED-Modul Pinbelegung

※ Notiz:

Je nach gemeinsamem Pin gibt es zwei LED-Typen: mit gemeinsamer Anode und mit gemeinsamer Kathode. Dieses Tutorial verwendet eine LED mit gemeinsamer Kathode.

Funktionsweise der RGB-LED

Physikalisch betrachtet ist jede Farbe eine Kombination aus drei Grundelementen: Rot (R), Grün (G) und Blau (B). Der Wert jedes Elements reicht von 0 bis 255, und ihre Kombination ergibt 256 × 256 × 256 = über 16 Millionen Farben insgesamt.

Wenn der ESP32 S3 PWM-Signale an den Pins R, G und B erzeugt, zeigt die RGB-LED die Farbe an, die diesen Tastverhältnissen entspricht. Durch Ändern des Tastverhältnisses jedes PWM-Signals (von 0 bis 255) kann die RGB-LED jede beliebige Farbe darstellen. Die Farbwerte für Rot (R), Grün (G) und Blau (B) entsprechen dem PWM-Tastverhältnis an den Pins R, G bzw. B.

Schaltplan zwischen RGB-LED und ESP32 S3

Schließen Sie das RGB-LED-Modul an den ESP32 S3 an, indem Sie drei Leitungen von den Farbpins zu digitalen Ausgangspins führen, und verbinden Sie dann den Pin der gemeinsamen Kathode direkt mit einem beliebigen GND-Pin des Boards. Wenn Sie eine einzelne RGB-LED (ohne Modul) verwenden, denken Sie daran, an jedem Farbpin einen 220-Ohm-Vorwiderstand in Reihe zu schalten.

Sicherheitshinweise

Verwenden Sie beim Anschließen einer einzelnen RGB-LED immer Vorwiderstände (220 Ohm pro Kanal) – ohne sie riskieren Sie, die LED dauerhaft zu beschädigen oder die GPIO-Pins des ESP32 S3 zu zerstören. Mit einem RGB-LED-Modul entfällt dieses Problem, da die Widerstände bereits integriert sind.

  • Schaltplan zwischen ESP32 S3 und RGB-LED
ESP32 S3 RGB-LED Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

  • Schaltplan zwischen ESP32 S3 und RGB-LED-Modul
ESP32 S3 RGB-LED-Modul Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

RGB-LED-Pin Komponente ESP32 S3 Pin
R (Rot) 220Ω-Widerstand (oder im Modul integriert) GPIO1
G (Grün) 220Ω-Widerstand (oder im Modul integriert) GPIO42
B (Blau) 220Ω-Widerstand (oder im Modul integriert) GPIO40
Gemeinsam (Kathode−) Direkte Leitung GND

So steuern Sie die RGB-LED

Die Steuerung der RGB-LED mit dem ESP32 S3 umfasst drei Schritte: eine Zielfarbe auswählen, sie in R/G/B-Werte umrechnen und diese Werte mit analogWrite() ausgeben. Die folgenden Schritte zeigen den Ablauf am Beispiel der Farbe #00979D.

  • Farbcode ermitteln. Tipps:
    • Den gewünschten Farbcode können Sie mit dem Farbwähler auswählen
    • Wenn Sie eine Farbe aus einem Bild verwenden möchten, nutzen Sie das Online-Tool Colors From Image
  • Rechnen Sie den Farbcode mit dem Tool von w3schools in R-, G- und B-Werte um. In diesem Fall: R = 0, G = 151, B = 157
RGB-LED Farbwähler
  • Definieren Sie die mit R, G und B verbundenen Pins des ESP32 S3. Zum Beispiel:
#define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin
  • Konfigurieren Sie diese Pins des ESP32 S3 als Ausgänge:
pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT);
  • Steuern Sie die LED so, dass sie die Zielfarbe ausgibt (#00979D → R = 0, G = 151, B = 157):
analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 151); analogWrite(PIN_BLUE, 157);

ESP32 S3 Code

Schnelle Schritte

Der folgende Code lässt die RGB-LED nacheinander drei Farben anzeigen. Stellen Sie vor dem Hochladen sicher, dass Ihre Verdrahtung dem obigen Schaltplan entspricht und Ihre Arduino IDE für das ESP32 S3 Board konfiguriert ist.

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Schaltung verdrahten: Schließen Sie die RGB-LED (oder das Modul) gemäß dem obigen Schaltplan an den ESP32 S3 an.
  3. Board anschließen: Verbinden Sie den ESP32 S3 über ein USB-Type-C-Kabel mit Ihrem Computer.
  4. Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
  5. Board auswählen: Wählen Sie ESP32 S3 und den zugehörigen COM-Port.
  6. Code kopieren: Kopieren Sie den folgenden Code und fügen Sie ihn in die Arduino IDE ein.

Der folgende Code wechselt die LED-Farbe nacheinander zwischen drei Werten:

  • #00C9CC (R = 0, G = 201, B = 204)
  • #F7788A (R = 247, G = 120, B = 138)
  • #34A853 (R = 52, G = 168, B = 83)
/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-led-rgb */ #define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) analogWrite(PIN_RED, 0); analogWrite(PIN_GREEN, 201); analogWrite(PIN_BLUE, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) analogWrite(PIN_RED, 247); analogWrite(PIN_GREEN, 120); analogWrite(PIN_BLUE, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) analogWrite(PIN_RED, 52); analogWrite(PIN_GREEN, 168); analogWrite(PIN_BLUE, 83); delay(1000); // keep the color 1 second }
  1. Code hochladen: Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um zu kompilieren und hochzuladen.
So laden Sie ESP32 S3 Code in der Arduino IDE hoch
  1. Ergebnis beobachten: Sehen Sie zu, wie die RGB-LED nacheinander drei verschiedene Farben anzeigt, jede für eine Sekunde.
  2. Profi-Tipp: Verwenden Sie einen Online-Farbwähler, um den Hex-Code jeder gewünschten Farbe zu finden, rechnen Sie ihn in R/G/B-Werte um und setzen Sie diese Zahlen direkt in die analogWrite()-Aufrufe ein, um genau diese Farbe auf Ihrer LED anzuzeigen.

Zeilenweise Code-Erklärung

Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!

Bei vielen Farben lässt sich der Code durch eine Funktion verkürzen:

Wenn Ihr Projekt viele verschiedene Farben anzeigen soll, wird das Wiederholen von drei analogWrite()-Aufrufen pro Farbe schnell unübersichtlich. Der folgende Code lagert die Farblogik in eine wiederverwendbare Funktion setColor() aus, wodurch der Sketch übersichtlicher und leichter zu pflegen ist.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-led-rgb */ #define PIN_RED GPIO1 // The ESP32 S3 pin connected to R pin #define PIN_GREEN GPIO42 // The ESP32 S3 pin connected to G pin #define PIN_BLUE GPIO40 // The ESP32 S3 pin connected to B pin void setup() { pinMode(PIN_RED, OUTPUT); pinMode(PIN_GREEN, OUTPUT); pinMode(PIN_BLUE, OUTPUT); } void loop() { // color code #00C9CC (R = 0, G = 201, B = 204) setColor(0, 201, 204); delay(1000); // keep the color 1 second // color code #F7788A (R = 247, G = 120, B = 138) setColor(247, 120, 138); delay(1000); // keep the color 1 second // color code #34A853 (R = 52, G = 168, B = 83) setColor(52, 168, 83); delay(1000); // keep the color 1 second } void setColor(int R, int G, int B) { analogWrite(PIN_RED, R); analogWrite(PIN_GREEN, G); analogWrite(PIN_BLUE, B); }

Serial-Monitor-Ausgabe

Das RGB-LED-Tutorial erzeugt standardmäßig keine Ausgabe im Serial Monitor, aber Sie können Serial.begin(9600) in setup() hinzufügen und jeden Farbwechsel protokollieren, um zu prüfen, ob Ihr Code wie erwartet läuft. Eine Beispielausgabe nach dem Hinzufügen der seriellen Protokollierung könnte so aussehen:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:00:01] Setting color: R=0, G=201, B=204 (#00C9CC) [2026-06-16 10:00:02] Setting color: R=247, G=120, B=138 (#F7788A) [2026-06-16 10:00:03] Setting color: R=52, G=168, B=83 (#34A853) [2026-06-16 10:00:04] Setting color: R=0, G=201, B=204 (#00C9CC)
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungs- und Projektideen

Die Farbsteuerung einer RGB-LED ist ein leistungsstarker Baustein für viele ESP32 S3 Projekte, die eine ausdrucksstarke visuelle Ausgabe benötigen.

  1. Stimmungslampe: Bauen Sie ein per WLAN gesteuertes Umgebungslicht, bei dem Benutzer jede beliebige Farbe über eine Webseite auswählen können, und nutzen Sie dabei die integrierten Funkfähigkeiten des ESP32 S3.
  2. Statusanzeige: Zeigen Sie in einem mit dem ESP32 S3 verbundenen IoT-Überwachungssystem Grün für Normalbetrieb, Gelb für Warnungen und Rot für Fehlerzustände an.
  3. Benachrichtigungslicht: Lassen Sie eine bestimmte Farbe aufblinken, wenn der ESP32 S3 eine bestimmte MQTT-Nachricht, E-Mail-Warnung oder einen Webhook-Auslöser empfängt.
  4. Temperatur-Visualisierung: Ordnen Sie Temperaturmesswerte mithilfe der analogen Eingänge des ESP32 S3 einem Farbverlauf zu – Blau für kalt, Grün für angenehm, Rot für heiß.
  5. Rückmeldung für Spielsteuerungen: Nutzen Sie Farbwechsel, um in einem interaktiven Projekt mit dem ESP32 S3 Spielzustände, Treffer oder Spielerzüge anzuzeigen.
  6. Nachtlicht mit Timer: Wechseln Sie abends durch warme Farben und gehen Sie nachts nach einem zeitbasierten Plan, gesteuert von der internen Uhr des ESP32 S3, allmählich zu kühleren Tönen über.

Video Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.

Fordern Sie sich selbst heraus

Sobald Ihre RGB-LED zuverlässig die Farben auf dem ESP32 S3 wechselt, helfen Ihnen diese zunehmend anspruchsvollen Übungen, Ihr Verständnis von PWM, Farbenlehre und Timing zu vertiefen.

  1. Anfänger: Ändern Sie die drei Farben in der Schleife in Farben Ihrer Wahl und ermitteln Sie die R/G/B-Werte mit einem Online-Farbwähler.
  2. Anfänger: Fügen Sie eine vierte Farbe hinzu und passen Sie die Verzögerungen so an, dass jede Farbe unterschiedlich lange angezeigt wird.
  3. Fortgeschritten: Erstellen Sie mit einer Schleife und setColor() einen sanften Regenbogen-Übergang, der fortlaufend das gesamte Farbspektrum durchläuft.
  4. Fortgeschritten: Fügen Sie einen Taster hinzu, der den ESP32 S3 bei jedem Druck zur nächsten Farbe der Sequenz weiterschaltet.
  5. Experte: Implementieren Sie einen sanften Farbübergang zwischen zwei beliebigen Farben, indem Sie die R-, G- und B-Werte schrittweise interpolieren, ohne delay() zu verwenden.
  6. Experte: Schließen Sie einen Fotowiderstand an den ESP32 S3 an und nutzen Sie die Umgebungslichtwerte, um Farbe oder Helligkeit der LED in Echtzeit automatisch anzupassen.

Sprachreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!