ESP32 S3 - LED - Dimmen
Mit dem ESP32 S3 lässt sich die Helligkeit einer LED ganz einfach über PWM-Signale steuern, sodass mit nur wenigen Codezeilen sanfte Ein- und Ausblendeffekte möglich sind. Dieses Tutorial führt Sie durch drei verschiedene Dimm-Methoden – vom einfachen Ansatz mit delay() bis zur nicht blockierenden millis()-Technik –, damit Sie die für Ihr Projekt passende wählen können.
Was Sie bauen werden:
- Eine Schaltung, die eine LED mit Vorwiderstand an den ESP32 S3 anschließt
- Einen einfachen Dimm-Sketch mit delay() für einen einfachen Helligkeitszyklus
- Einen sanften Einblendeffekt über einen festgelegten Zeitraum, ohne anderen Code zu blockieren
- Einen sanften Ausblendeffekt mit millis() für eine präzise, nicht blockierende Zeitsteuerung

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
Eine LED (Leuchtdiode) sendet Licht aus, wenn Strom in Durchlassrichtung durch sie fließt. Sie hat zwei Anschlüsse: die Anode (positiv, längeres Bein) und die Kathode (negativ, kürzeres Bein), und ihre Helligkeit lässt sich durch Ändern des Tastverhältnisses eines PWM-Signals vom ESP32 S3 stufenlos steuern.
Wichtige Spezifikationen
LEDs arbeiten je nach Farbe mit einer typischen Durchlassspannung von 2–3 V und benötigen einen in Reihe geschalteten Vorwiderstand – meist 220 Ohm –, damit sie nicht durch zu hohen Strom durchbrennen. Der ESP32 S3 verwendet für das PWM-Tastverhältnis einen Bereich von 0 bis 255: Der Wert 0 entspricht GND (LED aus), 255 entspricht der vollen Versorgungsspannung (LED mit maximaler Helligkeit), und Werte dazwischen ergeben proportionale Helligkeitsstufen.
LED-Pinbelegung
Die LED hat zwei Pins mit jeweils eigener Funktion:
- Anode (+): Das längere Bein – verbinden Sie es über einen 220-Ohm-Widerstand mit dem Ausgangspin des ESP32 S3
- Kathode (-): Das kürzere Bein mit der abgeflachten Kante am Gehäuse – verbinden Sie es mit GND

Funktionsweise der LED
Die Helligkeit der LED wird durch die Spannung (bzw. den PWM-Mittelwert) bestimmt, die an ihrer Anode anliegt, wenn die Kathode mit Masse verbunden ist. Wenn der ESP32 S3 ein PWM-Signal ausgibt, schaltet er den Pin sehr schnell zwischen HIGH und LOW um, und die LED gibt den Mittelwert als gleichmäßige Helligkeit wieder.

※ Notiz:
Verwenden Sie immer einen Widerstand (typischerweise 220 Ohm) in Reihe mit der LED, um den Strom zu begrenzen und ein Durchbrennen zu verhindern. Der Widerstandswert hängt von der Spezifikation der LED und der Versorgungsspannung ab.
ESP32 S3 - LED dimmen
Die digitalen Ausgangspins des ESP32 S3 unterstützen PWM nativ und eignen sich daher gut für LED-Dimmeffekte. Sie verbinden die Anode der LED mit einem beliebigen PWM-fähigen Pin des ESP32 S3, die Kathode über einen 220-Ohm-Widerstand mit GND und ändern dann in Ihrem Sketch schrittweise den Wert des Tastverhältnisses in analogWrite(). Wird das Tastverhältnis von 0 auf 255 erhöht, blendet die LED ein; wird es von 255 auf 0 verringert, blendet sie aus.
Schaltplan zwischen LED und ESP32 S3
Schließen Sie die LED an den ESP32 S3 an, indem Sie die Anode über einen 220-Ohm-Widerstand mit Pin D7 und die Kathode direkt mit GND verbinden. Wenn der Widerstand immer im Stromkreis ist, sind sowohl die LED als auch der Ausgangspin des ESP32 S3 vor Überstrom geschützt.
Sicherheitshinweise
Schließen Sie eine LED niemals ohne Vorwiderstand direkt zwischen einem Versorgungspin und Masse an – selbst ein kurzer Kurzschluss kann die LED oder den Pin des Mikrocontrollers dauerhaft beschädigen. Der hier verwendete 220-Ohm-Widerstand eignet sich für die meisten Standard-5-mm-LEDs bei 3,3 V; wenn Sie eine andere LED-Farbe oder Versorgungsspannung verwenden, passen Sie den Widerstandswert entsprechend an.
| LED-Pin | ESP32 S3 Pin |
|---|---|
| Anode (+) (längeres Bein) | D7 (über 220Ω-Widerstand) |
| Kathode (-) (kürzeres Bein) | GND |

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
So programmieren Sie
Um eine LED mit dem ESP32 S3 zu dimmen, benötigen Sie zwei zentrale Funktionen. Deklarieren Sie den Pin zuerst mit pinMode() als Ausgang und steuern Sie dann die Helligkeit, indem Sie analogWrite() einen Wert zwischen 0 und 255 übergeben. Das folgende Beispiel verwendet Pin D7:
Dabei ist brightness eine ganze Zahl von 0 (LED aus) bis 255 (maximale Helligkeit). Wird dieser Wert im Laufe der Zeit erhöht, blendet die LED ein; wird er verringert, blendet sie aus.
ESP32 S3 Code - Einfaches Dimm-Beispiel
Der folgende Code zeigt den einfachsten Ansatz zum Dimmen einer LED am ESP32 S3: Er erhöht die Helligkeit schrittweise von 0 auf 255 zum Einblenden und senkt sie dann von 255 wieder auf 0 zum Ausblenden, wobei delay() das Tempo zwischen den Schritten bestimmt. Dies ist ein guter Ausgangspunkt, um zu verstehen, wie sich PWM-Tastverhältnisse in wahrgenommene LED-Helligkeit übersetzen, bevor Sie zu nicht blockierenden Techniken übergehen.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Komponenten verdrahten: Folgen Sie dem obigen Schaltplan, um die LED über einen 220-Ohm-Widerstand mit Pin D7 zu verbinden.
- Board anschließen: Verbinden Sie Ihren ESP32 S3 über ein USB-Type-C-Kabel mit Ihrem Computer.
- Arduino IDE öffnen: Starten Sie die Arduino IDE auf Ihrem Computer.
- Board und Port auswählen: Wählen Sie „ESP32S3 Dev Module“ (oder Ihre spezifische ESP32 S3 Variante) als Board und den richtigen COM-Port aus.
- Code kopieren: Kopieren Sie den folgenden Sketch und fügen Sie ihn in ein neues Arduino IDE Projekt ein.
- Code hochladen: Klicken Sie auf die Schaltfläche „Upload“, um den Sketch zu kompilieren und auf Ihren ESP32 S3 zu übertragen.
- Ergebnis beobachten: Sehen Sie zu, wie die LED in einem fortlaufenden Zyklus sanft ein- und ausblendet.
- Profi-Tipp: Passen Sie die delay()-Werte an, um das Dimmen zu beschleunigen oder zu verlangsamen, oder ändern Sie die Schrittweite der Helligkeit für einen gleichmäßigeren oder dramatischeren Effekt.

Zeilenweise Code-Erklärung
Der obige ESP32 S3 Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
※ Notiz:
Das obige Beispiel verwendet die Funktion delay() zum Ein- und Ausblenden. Durch delay() wirkt das Dimmen weniger sanft, und anderer Code kann während des Dimmens nicht ausgeführt werden. In den nächsten Abschnitten lernen Sie, wie Sie mit der Funktion millis() für eine nicht blockierende Zeitsteuerung sanft ein- und ausblenden, ohne anderen Code zu blockieren.
So blenden Sie eine LED über einen Zeitraum ohne delay() ein
Dieser Sketch erzeugt einen sanften Einblendeffekt, indem er mit millis() die aktuelle Helligkeit anhand der seit Beginn des Einblendens verstrichenen Zeit berechnet. Da er niemals delay() aufruft, bleibt der ESP32 S3 frei für andere Aufgaben – Sensoren auslesen, ein Display aktualisieren oder auf Tastendrücke reagieren –, während die Helligkeit der LED im Hintergrund gleichmäßig ansteigt.
So blenden Sie eine LED über einen Zeitraum ohne delay() aus
Dieser Sketch spiegelt den Einblend-Ansatz in umgekehrter Richtung: Er ordnet die verstrichene Zeit einem abnehmenden Helligkeitswert zu und blendet die LED über eine einstellbare Dauer von voller Helligkeit bis zum Ausschalten aus. In Kombination mit dem Einblend-Sketch erhalten Sie vollständige, nicht blockierende Dimmzyklen auf dem ESP32 S3, die gut mit der restlichen Logik Ihrer Anwendung zusammenarbeiten.
Anwendungs- und Projektideen
Das Dimmen von LEDs ist eine erstaunlich vielseitige Technik, und sobald Sie sie auf dem ESP32 S3 beherrschen, eröffnet sie Ihnen zahlreiche praktische Projekte:
- Atmendes Nachtlicht: Bauen Sie eine beruhigende Stimmungslampe, die in einem langsamen Zyklus sanft ein- und ausblendet, um beim Entspannen oder Einschlafen zu helfen.
- Statusanzeige: Stellen Sie verschiedene Gerätezustände mit unterschiedlichen Dimmgeschwindigkeiten dar – ein langsames Pulsieren für Standby, ein schnelles Pulsieren für aktive Verarbeitung.
- Wecker: Erhöhen Sie die LED-Helligkeit schrittweise, um einen natürlichen Sonnenaufgang zu simulieren und sanfter aufzuwachen.
- Musik-Visualisierer: Synchronisieren Sie die Dimmstufen der LED mit Audio-Amplitudendaten für eine einfache, aber wirkungsvolle klangreaktive Lichtanzeige.
- Smart-Home-Stimmungsbeleuchtung: Kombinieren Sie die Dimmsteuerung mit einem WLAN-Befehl, um die LED-Helligkeit aus der Ferne anzupassen und die passende Atmosphäre zu schaffen.
- Akkustandsanzeige: Ordnen Sie die verbleibende Akkuladung der Dimmgeschwindigkeit zu, damit Benutzer den Ladezustand auf einen Blick erkennen.
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 das einfache Dimmen funktioniert, bringen diese Aufgaben Ihre ESP32 S3 Fähigkeiten weiter und helfen Ihnen, über Timing, Nebenläufigkeit und Sensorintegration nachzudenken:
- Anfänger: Ändern Sie die Dimmdauer, um einen langsamen, entspannenden Atemeffekt zu erzeugen, der einen vollständigen Zyklus in 5 Sekunden durchläuft.
- Anfänger: Ändern Sie den Code so, dass zwischen zwei Helligkeitsstufen ungleich null (zum Beispiel 50 bis 200) gedimmt wird, statt immer bei völlig aus zu beginnen.
- Fortgeschritten: Steuern Sie mehrere LEDs gleichzeitig mit unterschiedlichen Dimmmustern, alle ohne blockierende delay()-Aufrufe.
- Fortgeschritten: Fügen Sie einen Taster hinzu, mit dem der Benutzer das Dimmen starten, pausieren oder zwischen verschiedenen Geschwindigkeitsvoreinstellungen wechseln kann.
- Experte: Steuern Sie eine RGB-LED mit überlappenden Dimmkurven auf jedem Farbkanal an, um einen sanften Regenbogen-Farbwechsel zu erzeugen.
- Experte: Lesen Sie einen analogen Sensor (etwa einen Lichtsensor oder ein Potentiometer) am ESP32 S3 aus und verwenden Sie dessen Wert, um die Dimmgeschwindigkeit oder Zielhelligkeit in Echtzeit dynamisch zu steuern.