ESP32 S3 - Mehrere LEDs blinken lassen
Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 so programmieren, dass mehrere LEDs gleichzeitig blinken, ohne die Funktion delay zu verwenden. Mit der ezLED-Bibliothek und LED-Arrays können Sie mehrere LEDs mit wenig Code übersichtlich verwalten.
Was Sie bauen werden:
- Mehrere LEDs mit dem ESP32 S3 Board verdrahten
- Jede LED mit der ezLED-Bibliothek unabhängig blinken lassen
- Das Blink-Timing ohne blockierende Verzögerungen steuern
- Den Code mit einem Array von LED-Objekten weiter vereinfachen
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Kaufhinweis: Um den Verdrahtungsprozess zu vereinfachen, empfehlen wir die Verwendung des LED Module, das mit einem eingebauten Widerstand geliefert wird.
Überblick über LED
Die LED (Leuchtdiode) ist eines der grundlegendsten Ausgabebauteile für Mikrocontroller wie den ESP32 S3. Sie wandelt elektrischen Strom in sichtbares Licht um und wird häufig für Statusanzeigen, Debug-Signale und visuelle Rückmeldungen in Embedded-Projekten eingesetzt. Mehrere LEDs unabhängig voneinander steuern zu können, ist eine wichtige Fähigkeit für komplexere ESP32 S3 Anwendungen.
Wichtige Spezifikationen
- Durchlassspannung: typischerweise 1,8V–3,3V, je nach Farbe
- Strombegrenzungswiderstand: 220 Ohm empfohlen für 3,3V-Logik
- Steuerung: digitaler Ausgangspin (HIGH = an, LOW = aus)
Wir haben ein eigenes Tutorial über LEDs mit ausführlichen Informationen und Schritt-für-Schritt-Anleitungen zu Pinbelegung, Funktionsprinzip und Verdrahtung mit dem ESP32 S3. Mehr erfahren Sie unter folgendem Link:
Verdrahtungsdiagramm
Schalten Sie jede LED in Reihe mit einem 220-Ohm-Widerstand zwischen einen GPIO-Pin des ESP32 S3 und GND. Achten Sie auf die richtige Polarität der LED – das längere Bein (Anode) wird über den Widerstand mit dem GPIO-Pin verbunden, das kürzere Bein (Kathode) mit GND.
Sicherheitshinweise
Verwenden Sie für jede LED immer einen Strombegrenzungswiderstand, um Schäden an der LED und am GPIO-Pin des ESP32 S3 zu vermeiden. Die GPIO-Pins des ESP32 S3 liefern bis zu etwa 40 mA pro Pin, für einen sicheren Dauerbetrieb wird jedoch empfohlen, den Strom unter 12 mA pro LED zu halten.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| GPIO-Pin | LED |
|---|---|
| GPIO 39 | LED 1 (Anode über 220Ω-Widerstand) |
| GPIO 40 | LED 2 (Anode über 220Ω-Widerstand) |
| GPIO 41 | LED 3 (Anode über 220Ω-Widerstand) |
| GND | Alle LED-Kathoden |
ESP32 S3 Code - Mehrere LEDs blinken lassen
Um mehrere LEDs am ESP32 S3 unabhängig blinken zu lassen, können wir die Funktion delay() nicht verwenden, da sie die Ausführung des übrigen Codes blockiert. Der folgende Code nutzt die Funktion millis() zusammen mit der ezLED-Bibliothek, die intern die Zeitstempel verwaltet, sodass Sie sich nicht selbst um diese Komplexität kümmern müssen. So blinkt jede LED in ihrem eigenen Takt, ohne andere Abläufe zu stören.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahten Sie alles wie im obigen Schaltplan gezeigt.
- Verbinden Sie das ESP32 S3 Board über ein USB-Typ-C-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie das richtige ESP32 S3 Board (z. B. ESP32S3 Dev Module) und den COM-Port.
- Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
- Suchen Sie nach "ezLED" und finden Sie die LED-Bibliothek von ArduinoGetStarted.
- Klicken Sie auf die Schaltfläche Install, um die ezLED-Bibliothek zu installieren.
- Search for ezLED created by ArduinoGetStarted.com and click the Install button.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Kompilieren Sie den Code und laden Sie ihn auf das ESP32 S3 Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.

- Prüfen Sie den Zustand jeder LED – sie sollten unabhängig voneinander in ihren eingestellten Intervallen blinken.
- Profi-Tipp: Passen Sie die Blinkintervalle der einzelnen LEDs an, um interessante Lichtmuster oder visuelle Effekte zu erzeugen.
ESP32 S3 Code - Mehrere LEDs mit einem Array blinken lassen
Wir können den obigen Code mit einem Array von LED-Objekten weiter optimieren. Der folgende Code zeigt, wie ein Array die Erweiterung auf beliebig viele LEDs mit minimalen Änderungen erleichtert – aktualisieren Sie einfach die Pinliste und die Arraygröße. Dieses Muster ist besonders nützlich, wenn Sie in einem ESP32 S3 Projekt viele LEDs steuern.
Für flexiblere Blinkmuster und zusätzliche Steuerungsmöglichkeiten sehen Sie sich die weiteren Funktionen der ezLED-Bibliothek an.
Ausgabe des Seriellen Monitors
Öffnen Sie den Seriellen Monitor mit 9600 Baud, um Laufzeitmeldungen des ESP32 S3 zu beobachten. Die folgenden Beispielwerte könnten Sie während des Betriebs sehen:
Anwendungen
Das unabhängige Blinken mehrerer LEDs am ESP32 S3 ist eine grundlegende Technik, die in vielen realen Embedded-Projekten zum Einsatz kommt. Hier einige praktische Anwendungsfälle:
- Statusanzeigen: Verwenden Sie mehrere LEDs, um gleichzeitig verschiedene Systemzustände wie Stromversorgung, Verbindung und Fehler anzuzeigen.
- Ampelsimulation: Realisieren Sie eine einfache Ampelsteuerung mit roten, gelben und grünen LEDs, die in festgelegten Intervallen wechseln.
- Benachrichtigungssystem: Lassen Sie verschiedene LEDs aufblinken, um eingehende Warnungen, Nachrichten oder Sensorereignisse zu signalisieren, ohne die übrige Programmlogik zu blockieren.
- Debug-Hilfe: Weisen Sie jedem Subsystem eine LED zu, um visuell zu überwachen, welche Teile Ihrer ESP32 S3 Firmware gerade aktiv sind.
- Dekorative Beleuchtung: Erstellen Sie animierte LED-Muster für Anzeigen, Kostüme oder Kunstinstallationen mit unabhängigem Blink-Timing.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.
Herausforderungen
Das Üben mit Varianten dieses Projekts vertieft Ihr Verständnis von nicht-blockierendem Code und LED-Steuerung auf dem ESP32 S3. Probieren Sie die folgenden Übungen aus, um Ihre Fähigkeiten zu erweitern:
- Einsteiger: Fügen Sie eine vierte LED an einem neuen GPIO-Pin hinzu und lassen Sie sie in einem anderen Intervall blinken als die drei vorhandenen.
- Fortgeschritten: Ändern Sie den Array-basierten Code so, dass er die Blinkintervalle aus einem Array von Werten liest, damit Sie alle LED-Zeiten an einer Stelle ändern können, ohne einzelne Objekte anzufassen.
- Experte: Verwenden Sie die eingebauten Touch-Pins des ESP32 S3 oder einen Taster, um den Blinkzustand jeder LED zur Laufzeit unabhängig ein- und auszuschalten – so kombinieren Sie Eingabeverarbeitung mit der Ausgabe an mehrere LEDs.