ESP32 S3 - WS2812B LED-Streifen
Der ESP32 S3 ist ein leistungsstarker Mikrocontroller, mit dem sich WS2812B-RGB-LED-Streifen einfach und effizient steuern lassen. Mit einem einzigen GPIO-Pin können Sie Farbe und Helligkeit jeder LED auf dem Streifen unabhängig steuern und so eine Vielzahl dynamischer Lichteffekte erzeugen.

Was Sie bauen werden:
- LEDs nacheinander grün einschalten, mit einer Verzögerung zwischen jedem Pixel
- Alle LEDs gleichzeitig für zwei Sekunden ausschalten
- Alle LEDs gleichzeitig für zwei Sekunden rot einschalten
- Die Lichtsequenz in einer Endlosschleife wiederholen
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) |
Überblick über WS2812B RGB LED Strip
Der WS2812B ist ein einzeln adressierbarer RGB-LED-Streifen, bei dem LED und Steuerschaltung in jedem Pixel integriert sind, sodass Sie jede LED über eine einzige Datenleitung unabhängig steuern können. Jedes Pixel enthält rote, grüne und blaue Teil-LEDs, die jeweils auf 256 Helligkeitsstufen eingestellt werden können – das ergibt über 16 Millionen mögliche Farben pro Pixel. Der Streifen arbeitet mit 5 V und verwendet ein Eindrahtprotokoll, das ihn mit den GPIO-Pins des ESP32 S3 kompatibel macht.
Wichtige Spezifikationen
Der WS2812B-RGB-LED-Streifen hat drei Pins:
- GND-Pin: muss mit GND (0 V) verbunden werden
- VCC-Pin: muss mit 5 V einer externen Stromversorgung verbunden werden
- Din-Pin: empfängt das Steuersignal und sollte mit einem GPIO-Pin des ESP32 S3 verbunden werden
※ Notiz:
Die Reihenfolge der Pins kann je nach Hersteller variieren. Verwenden Sie IMMER die auf dem LED-Streifen aufgedruckten Beschriftungen.
Verdrahtungsdiagramm
Schließen Sie den WS2812B-LED-Streifen an den ESP32 S3 an, indem Sie die VCC- und GND-Pins des Streifens über ein externes Netzteil mit 5 V versorgen und die Din-Datenleitung über einen 470-Ω-Widerstand mit einem GPIO-Pin des ESP32 S3 verbinden. Setzen Sie einen 1000-µF-Kondensator nahe am Streifen zwischen die Versorgungsleitungen, um beim ersten Einschalten der Schaltung vor Spannungsspitzen zu schützen.
Sicherheitshinweise
Verwenden Sie für den LED-Streifen immer eine externe 5-V-Stromversorgung, statt ihn über die 3,3-V- oder USB-Pins des ESP32 S3 zu versorgen, insbesondere wenn Sie mehr als nur wenige LEDs ansteuern. Der 470-Ω-Vorwiderstand in der Datenleitung schützt vor Signalüberschwingern und Reflexionen, die die Kommunikation stören können. Der 1000-µF-Kondensator zwischen VCC und GND verhindert, dass der Einschaltstrom die erste LED des Streifens beim Einschalten beschädigt.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
| Bauteil-Pin | Verbunden mit |
|:---|:---|
| WS2812B GND | GND (externe 5-V-Versorgung) |
| WS2812B VCC | 5V (externe Stromversorgung) |
| WS2812B Din | ESP32 S3 GPIO4 (über 470-Ω-Widerstand) |
| Kondensator + | 5-V-Schiene |
| Kondensator - | GND-Schiene |
Wie man den WS2812B-RGB-LED-Streifen programmiert
Zur Ansteuerung von WS2812B-LED-Streifen mit dem ESP32 S3 können zwei beliebte Bibliotheken verwendet werden: die Adafruit-NeoPixel-Bibliothek und die FastLED-Bibliothek. Dieses Tutorial verwendet die Adafruit-NeoPixel-Bibliothek, da sie eine übersichtliche, einfache API bietet, die leicht zu erlernen ist. Die folgenden Codebeispiele zeigen die wichtigsten Funktionen für den Einstieg.
Deklarieren Sie ein WS2812B-Objekt, indem Sie die Anzahl der Pixel, den Datenpin und den Pixeltyp angeben:
Initialisieren Sie das WS2812B-Streifenobjekt in setup():
Legen Sie die Farbe jeder einzelnen LED (Pixel genannt) mit RGB-Werten von 0 bis 255 fest:
Legen Sie die Helligkeit für alle LEDs des Streifens auf einmal fest:
※ Notiz:
- WS2812B.setBrightness() gilt für alle Pixel des LED-Streifens. Um die Helligkeit für jedes einzelne Pixel festzulegen, skalieren Sie stattdessen die Farbwerte.
- Die mit WS2812B.setBrightness() und WS2812B.setPixelColor() gesetzten Werte werden erst wirksam, wenn WS2812B.show() aufgerufen wird.
ESP32 S3 Code
Der folgende Code zeigt eine vollständige Steuersequenz für den WS2812B-LED-Streifen mit der Adafruit-NeoPixel-Bibliothek. Er schaltet die Pixel nacheinander grün, schaltet dann alle aus und lässt anschließend alle gleichzeitig rot leuchten, wobei sich der Zyklus fortlaufend wiederholt. Laden Sie diesen Sketch auf Ihren ESP32 S3 hoch, nachdem Sie alles wie im obigen Diagramm verdrahtet haben.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
- Suchen Sie nach "Adafruit NeoPixel" und finden Sie dann die NeoPixel-Bibliothek von Adafruit.
- Klicken Sie auf die Schaltfläche Install, um die NeoPixel-Bibliothek zu installieren.
- Search for Adafruit NeoPixel created by Adafruit and click the Install button.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Wählen Sie im Menü Tools Ihr ESP32-S3-Board und den richtigen COM-Port aus.
- Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf Ihren ESP32 S3 hochzuladen.
- Beobachten Sie, wie der LED-Streifen den Effekt „grün nacheinander“, die Pause mit allen LEDs aus und den Effekt „alle rot“ durchläuft.
- Profi-Tipp: Passen Sie NUM_PIXELS an die tatsächliche Länge Ihres Streifens an und experimentieren Sie mit verschiedenen Farbwerten in WS2812B.Color(R, G, B), um eigene Lichtmuster zu erstellen.
※ Notiz:
Für komplizierte LED-Effekte bieten wir einen kostenpflichtigen Programmierservice an
Serieller Monitor
Öffnen Sie den seriellen Monitor mit 9600 Baud, um zu beobachten, wie der ESP32 S3 die Steuerzustände des LED-Streifens durchläuft. Im Folgenden sehen Sie eine typische Ausgabe im Normalbetrieb:
Anwendungen
Vom ESP32 S3 gesteuerte WS2812B-LED-Streifen werden häufig in Projekten eingesetzt, die eine dynamische, programmierbare Beleuchtung zu geringen Kosten und mit minimalem Verdrahtungsaufwand erfordern.
- Stimmungsbeleuchtung: Eine reaktive Raumbeleuchtung erstellen, die ihre Farbe je nach Tageszeit, Musik oder Sensordaten ändert.
- Statusanzeigen: Verschiedene Farben und Muster verwenden, um Systemzustände wie WLAN-Verbindung, Sensoralarme oder den Fortschritt eines Prozesses visuell darzustellen.
- Dekorative Anzeigen: Festtagsbeleuchtung, Unterbodenbeleuchtung für Fahrzeuge oder animierte Schilder mit eigenen Farbsequenzen bauen.
- Gaming-Zubehör: Reaktive RGB-Beleuchtung zu selbstgebauten Tastaturen, Controllern oder Schreibtisch-Setups hinzufügen, die auf Ereignisse im Spiel reagiert.
- Tragbare Projekte: LED-Streifen in Kostüme, Taschen oder Kleidung integrieren – für auffällige Effekte mit tragbarer Elektronik.
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
Der WS2812B-LED-Streifen eröffnet kreative Programmierherausforderungen, die Ihre Fähigkeiten mit dem ESP32 S3 schärfen und visuell beeindruckende Ergebnisse liefern.
- Anfänger: Den Code so ändern, dass er nacheinander alle LEDs rot, grün und blau leuchten lässt und jede Farbe eine Sekunde lang hält, bevor zur nächsten gewechselt wird.
- Fortgeschritten: Einen Regenbogeneffekt implementieren, der den Farbton jedes Pixels entlang des Streifens fortlaufend verschiebt, sodass alle Farben des Spektrums gleichzeitig erscheinen und im Laufe der Zeit gleichmäßig wandern.
- Experte: Die WLAN-Fähigkeit des ESP32 S3 nutzen, um eine Weboberfläche zu bauen, über die Benutzer mit einem Farbwähler eine beliebige Farbe auswählen und die Helligkeit in Echtzeit einstellen können, wobei die Änderungen ohne Neustart des Boards an den LED-Streifen übertragen werden.