WebSites    Projekte    Elektronik

ESP32LedStripe

Übersicht

ESP32LedStripe ist ein MicroController-Programm geschrieben für das ESP32UnoBoard,
welches die RGB-Leds eines Led-Leuchtstreifens mit Farbe und Helligkeit ansteuert.



Dabei kann der Programmierer in der Software die Anzahl der gereihten RGB-Leds
sowie die zeitliche Folge der wechselnden Helligkeits- und Farbwerte angeben.

Dazu benutzen wir auf der PC-Seite die Programmier-Oberfläche VSCode
mit dem PlugIn PlatformIO und weiterhin als LedStripe-Bibliothek "Adafruit_NeoPixel".

Als Hardware benutzen wir ein ESP32UnoBoard oder ein anderes kompatibles ESP32-Board,
einen LedStripe mit mindestens 10 Led-Pixeln und ein PowerSupply mit mindestens 5W.

Download

Esp32LedStripe_01V01.zip : Beispiel mit grüner wachsender Lichterkette

Esp32LedStripe_01V11.zip : Beispiel mit rot, grün, blau, flimmerweiss

Esp32LedStripe_01V12.zip : Beispiel mit rot, grün, blau, flimmerweiss, doppelte Helligkeit

Hardware

2212151408_WiringDiagram.gif
Sehen wir uns jetzt die Hardware-Verschaltung unseres ESP32LedStripe-Versuchaufbaus an:

Der PC mit VSCode wird über die USB-Schnittstelle mit dem ESP32UnoBoard mit einem USB-Kabel direkt verbunden.
So findet ohne weitere Hardware die Programmierung des ESP32 sowie ein eventueller Datenaustausch mit dem PC statt.

Das ESP32UnoBoard liefert mit IO5 das DOUT-Signal für den DatenEingang des LedStripe über einen 470Ohm-Schutzwiderstand.

Weiterhin versorgt das PowerSupply mit +5V0 und GND die Versorgungsleitungen +5V0 und GND des LedStripe.
Die Versorgungsleistung des PowerSupply muss in Abhängigkeit der Anzahl der RGB-Leds mindestens 5W betragen.

Achtung:
Die von mir verwendeten Ledstreifen verlangen eine 5V-Spannungsversorgung durch ein separates Netzteil.
Die Leistungsaufnahme von Lichterketten liegt grob bei 10W/m .. 20W/m.

Wichtig:
Niemals die Leistungsversorgung eines Ledstreifens über die Betriebsspannung des Arduino-Boards direkt verbinden,
sondern ein separates PowerSupply mit der an die Zahl der Leds angepassten Leistung bei einer Betriebsspannung von +5V0 verwenden!

Noch ein Hinweis:
beide GND-Leitungen sowohl vom PowerSupply als auch vom ESP32UnoBoard sind im LedStripe miteinander verbunden!

Software

2212151651_VSCodeMain.png

Die Software ESP32LedStripe wird unter VSCode mit dem PlatformIO-PlugIn für den Prozessor-Typ ESP32 entwickelt.

2212151754_VSCodeProject.png

Die notwendigen Bestandteile der Adafruit-Bibliothek "Adafruit_NeoPixel" in der Version "1.10.7" wurden extrahiert,
umbenannt und ins lib-Verzeichnis des Projekts geladen. Die Quellen der NeoPixel-Bibliothek sind damit integraler
Bestandteil des ESP32LedStripe-Projekts.
In der Version (2212161355_Esp32LedStripe)_01V01 besteht ESP32LedStripe aus dem von Adafruit mitgelieferten und
vereinfachten Example "simple", bei welchem die Sources an meine Bedürfnisse angepasst wurden.
Das Resultat findet sich in "main.cpp":

Der Programmkopf besteht aus einem include der NeoPixel-Library.
Es folgen Constant-Definitionen wichtiger Betriebsparameter und die Instanzierung des Objekts LedStripe mit dem Konstructor CNeoPixel.

In setup() findet mit Open eine Initialisierung des LedStripe-Objekts statt.

Im wiederkehrenden loop()-Aufruf werden zuerst mit Clear() alle Leds Dunkel geschaltet.
Danach stellt eine for-Schleife nacheinander die berücksichtigten 28 RGB-Leds auf Grün mit Helligkeit 15 von 255.
Die Umschaltung der Leds erfolgt mit einem Delay von 100ms.

Hier noch einmal das Ergebnis nach einem Compile&Run-Durchlauf:



Neben dieser ESP32LedStripe_01V01-Version stelle ich noch zwei weitere Versionen
mit allen Quellen zu freien Verfügung:

Version Esp32LedStripe_01V11 mit rot, grün, blau und flimmerweiss:



und Version Esp32LedStripe_01V12 mit rot, grün, blau und flimmerweiss in doppelter Intensität:



Referenzen

Programmieroberfläche "Visual-Studio-Code"
Visual-Studio-Code-PlugIn "PlatformIO"
Arduino-Library "Adafruit_NeoPixel"



WebSites    Projekte    Elektronik