LED-Lämpchen NEOPIXEL WS2812 am Raspberry und Arduino

Durch einen Artikel angeregt, wollte ich die Technik von im Strang steuerbaren LED-Lämpchen erkunden. Um die Kosten niedrig zu halten entschied ich mich für 10 “nackte” LED-Lämpchen mit integriertem WS2812-Controller. Da war man mit 7 Euro bei Amazon dabei. Ein Netzteil war nicht notwendig, da der Raspberry und der Arduino mit 3 Lämpchen an dem 5V-Ausgang gut zurecht kommen.

dscn0683_aw

Die Logik des WS2812 ist eigentlich ganz einfach. Die Lämpchen entnehmen den beiden Leitungen (GND, 5V) ihren Saft und lauschen auf ein 800KHz-Signal auf dem Daten-Input. Falls sie ein Signal erkennen, interpretieren sie die ersten 3 Bytes für sich als RGB-Wert und geben die restlichen Bytes über den Daten-Output weiter. Hier kann man dann weitere Lämpchen anbauen. Eine Pause im Signalstrom ist der Reset. Das klingt einfach und genial.

Die Beinchen der LED sind lang, lang, kurz, kurz -> D-out, GND, 5V, D-in. Auf die Signalleitung bekommt der Raspberry aber nur 3,3 Volt, scheint aber zu funktionieen.

Für den Raspberry fand ich Warnungen, das könne nicht gutgehen, aber ich fand auch Treiber für diese Anwendung. Diese setzen auf der SPI-Logik des Raspberry Pi auf und modulieren in Echtzeit, soweit das auf einem Unix-System geht. Ich benutzte ein Python-Modul von https://github.com/joosteto/ws2812-spi. Dieses Modul ist selbst komplett in Python und schien mir recht einfach,

Zunächst steuerte ich ein Lämpchen an und konnte somit den Farbverlauf regeln. Danach baute ich auf meinem Mini-Steckbrett 3 Lämpchen zusammen, die ich auch erfolgreich steuern konnte. Damit war mein Interesse zufriedigen gestellt.

dscn0685_aw

Probleme gab es einige: Zum einen war die zeitliche Steuerung sehr ungenau, aber es gab einen Hinweis auf einen Vorwiderstand in der Signalleitung. 100 oder 200 Ohm halfen Wunder. Jetzt bin ich bei einer Fehlerrate von unter einem Prozent bei den Farbeinstellungen. Einmal hatte ich 3 defekte Lämpchen, was natürlich den Versuch auch scheitern lässt. Ohne Messgeräte ist doch alles ein Blindflug. Die Jumper an dem einen Lämpchen habe ich mir von Walter (Danke!) anlöten lassen. Das ist einfacher und schöner als die kleinen Beinchen zu verbiegen.

Auf meinem ARDUINO UNO (… den besitze ich ja auch noch ….) mit der Bibliothek “Adafruit_NeoPixel.h” ließen sich die LEDs unkompliziert und exakt aus einem kleinen Sketch ansteuern. Hier hatte der ARDUINO eindeutig die Nase vorn.

Es ist also doch sinnvoll, einen Arduino Uno und einen Raspberry Pi zu besitzen.