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:

  1. Mehrere LEDs mit dem ESP32 S3 Board verdrahten
  2. Jede LED mit der ezLED-Bibliothek unabhängig blinken lassen
  3. Das Blink-Timing ohne blockierende Verzögerungen steuern
  4. Den Code mit einem Array von LED-Objekten weiter vereinfachen

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×LED Kit
1×LED (red)
1×LED Module
1×(Alternativ) Button and LED Kit
1×220Ω Resistor
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.

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.

Schaltplan ESP32 S3 mehrere LEDs

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.

/* * 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-blink-multiple-led */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-blink-multiple-led */ #include <ezLED.h> // ezLED library #define PIN_LED_1 39 // The ESP32-S3 pin GPIO39 connected to LED 1 #define PIN_LED_2 40 // The ESP32-S3 pin GPIO40 connected to LED 2 #define PIN_LED_3 41 // The ESP32-S3 pin GPIO41 connected to LED 3 ezLED led1(PIN_LED_1); // create ezLED object that attach to pin PIN_LED_1 ezLED led2(PIN_LED_2); // create ezLED object that attach to pin PIN_LED_2 ezLED led3(PIN_LED_3); // create ezLED object that attach to pin PIN_LED_3 void setup() { Serial.begin(9600); led1.blink(500, 500); // 500ms ON, 500ms OFF, blink immediately led2.blink(200, 800); // 200ms ON, 800ms OFF, blink immediately led3.blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { led1.loop(); // MUST call the led1.loop() function in loop() led2.loop(); // MUST call the led2.loop() function in loop() led3.loop(); // MUST call the led3.loop() function in loop() // DO SOMETHING HERE }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie alles wie im obigen Schaltplan gezeigt.
  3. Verbinden Sie das ESP32 S3 Board über ein USB-Typ-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie das richtige ESP32 S3 Board (z. B. ESP32S3 Dev Module) und den COM-Port.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Suchen Sie nach "ezLED" und finden Sie die LED-Bibliothek von ArduinoGetStarted.
  8. 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.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
ezLED by ArduinoGetStarted.com
LED library supports turn on/off, toggle, fade in/out, blink, blink in period, blink in a number of time. It is easy to use to control multiple LEDs... It is designed for not only beginners but also experienced users More info
1.0.1
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  2. 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.
Wie man ESP32 S3 Code in der Arduino IDE hochlädt
  1. Prüfen Sie den Zustand jeder LED – sie sollten unabhängig voneinander in ihren eingestellten Intervallen blinken.
  2. 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.

/* * 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-blink-multiple-led */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-blink-multiple-led */ #include <ezLED.h> // ezLED library #define NUM_LED 3 // three LEDs #define PIN_LED_1 39 // The ESP32-S3 pin GPIO39 connected to LED 1 #define PIN_LED_2 40 // The ESP32-S3 pin GPIO40 connected to LED 2 #define PIN_LED_3 41 // The ESP32-S3 pin GPIO41 connected to LED 3 ezLED ledArray[NUM_LED] = { ezLED(PIN_LED_1), // create ezLED object that attach to pin PIN_LED_1 ezLED(PIN_LED_2), // create ezLED object that attach to pin PIN_LED_2 ezLED(PIN_LED_3) // create ezLED object that attach to pin PIN_LED_3 }; void setup() { Serial.begin(9600); ledArray[0].blink(500, 500); // 500ms ON, 500ms OFF, blink immediately ledArray[1].blink(200, 800); // 200ms ON, 800ms OFF, blink immediately ledArray[2].blink(200, 200); // 200ms ON, 200ms OFF, blink immediately } void loop() { for (int i = 0; i < NUM_LED; i++) ledArray[i].loop(); // MUST call the led.loop() function in loop() // DO SOMETHING HERE }

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:

∞
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-01-15 10:00:01] LED 1 ON [2026-01-15 10:00:01] LED 2 ON [2026-01-15 10:00:01] LED 3 ON [2026-01-15 10:00:02] LED 1 OFF [2026-01-15 10:00:02] LED 2 OFF [2026-01-15 10:00:03] LED 1 ON [2026-01-15 10:00:04] LED 3 OFF
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

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:

  1. Statusanzeigen: Verwenden Sie mehrere LEDs, um gleichzeitig verschiedene Systemzustände wie Stromversorgung, Verbindung und Fehler anzuzeigen.
  2. Ampelsimulation: Realisieren Sie eine einfache Ampelsteuerung mit roten, gelben und grünen LEDs, die in festgelegten Intervallen wechseln.
  3. Benachrichtigungssystem: Lassen Sie verschiedene LEDs aufblinken, um eingehende Warnungen, Nachrichten oder Sensorereignisse zu signalisieren, ohne die übrige Programmlogik zu blockieren.
  4. Debug-Hilfe: Weisen Sie jedem Subsystem eine LED zu, um visuell zu überwachen, welche Teile Ihrer ESP32 S3 Firmware gerade aktiv sind.
  5. 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:

  1. 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.
  2. 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.
  3. 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.

※ 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!