LED-Display mit Neopixel und Laser-Cutter bauen

Rundes LED Display auf welchem "Hello" angezeigt wird
Hello LED Display

Ich habe mir vor einiger Zeit ein LED-Display gebaut und nun endlich einen Blog-Post für das Projekt verfasst. Der Post soll grobe Anhaltspunkte liefern, wie man selber ein solches Display bauen kann, ist jedoch keine Schritt-für-Schritt-Anleitung. Dateien für den Laser sind unten zu finden. Quellcode für einen ESP32, welcher das Display ansteuert ist am Ende zu finden.

NeoPixel


Weil rechteckig langweilig ist, habe ich mich für ein rundes Display entschieden. Die einzelnen Pixel bestehen aus Neo-Pixel-Strips, welche sich relativ einfach mit Arduino, ESP und Raspberry Pi ansteuern lassen.

Der Lasercutter bei der Arbeit

Das Display besteht aus 9 LED-Zeilen à 110 LEDs. Der Rahmen wird aus Sperrholz gefertigt. Es werden entsprechend 10 Holzringe und 110 Streben benötigt. Die Holzringe haben einen Durchmesser von ca 60 cm und lassen sich gerade noch auf dem Laser im Fablab schneiden. Die Streben bestehen aus einer inneren und einer äusseren Hälfte, welche drei Funktionen erfüllen:

  1. Stabilität/Halt für die Ringe
  2. Halterung für die LEDs
  3. Unterteilung für einzelne Pixel

Je nachdem wie sauber die Teile geschnitten, respektive nachbearbeitet wurden empfiehlt es sich Handschuhe zu tragen. Die Kanten waren bei mir teilweise ziemlich schwarz.

Das Zusammenbauen ist etwas fummelig, am einfachsten ging es bei mir die Ringe alle aufeinander zu legen und dann die Streben einzufügen. Am Anfang mit grossem Abstand, dann die Zwischenräume auffüllen.

Nachdem die inneren Streben montiert sind, kommen die LEDs rein. Ganz am Ende dann die äusseren Streben. Bei den LEDs habe ich 5-Meter-Stränge gekauft, welche ich entsprechend zugeschnitten habe und Stecker drangelötet habe. Die LED-Strips haben jeweils 3 Kabel, eines für Ground, eines für das Datensignal und eines für die Spannung. Hier muss man ein wenig aufpassen, das ganze Display hat 990 LEDs und die Kette wird sehr lang. Das bedeutet, dass einerseits einiges an Spannung durch den Widerstand in den Strips verloren geht und andererseits auch relativ viel Leistung verbraucht wird.

Kabel werden nach innen geführt

Das theoretische Maximum liegt bei ca 50 Ampère Strom respektive 250 Watt Leistung, wenn alle LEDs mit voller Stärke weiss leuchten und den maximal möglichen Strom verbrauchen. In der Praxis liefen bei mir die LEDs jedoch mit weniger Leistung (ca. 20-30 Watt maximal, 2-3 Watt wenn die LEDs gedimmt waren).
In der Praxis leuchten selten alle LEDs gleichzeitig in weiss.

Bei der Verkabelung habe ich alle Kabel für “Ground” parallel, sowie alle Kabel für die “Spannung” ebenfalls parallel angeschlossen. So verteilt sich der Stromfluss besser. Wenn ihr das “vergesst” werden die LEDs gegen Ende der LED-Kette immer dunkler (zuerst gelblich, dann rötlich, dann dunkel, je weiter hinten sie sind).
Das Signal wird einfach in Serie geschaltet. Da jede LED das Ausgangssignal verstärkt, ist hier die Länge kein Problem.
(Adafruit hat einen Überguide erstellt, wo alles zu den Neopixeln detailliert geschildert wird: https://www.digikey.de/en/maker/projects/adafruit-neopixel-berguide/970445a726c1438a9023c1e78c42e0bb )

LED Display beim Sprayen
Sprayen

Das Display kann auch im zusammengebauten Zustand bemalt (oder gesprayed) werden (LEDs vorher entfernen!).

Zum Ansteuern der LEDs gibt es eigentlich nicht so viel zusagen. Die meisten Neopixel-Libraries lassen sich recht einfach verwenden. Bei einem Arduino Uno können nicht alle LEDs gleichzeitig angesprochen werden, da dieser zu wenig Arbeitsspeicher hat. Ein Arduino Due, ESP8266, ESP32 oder Raspberry Pi helfen da weiter.
Da die LEDs Zeitkritisch sind kann es vorkommen, dass das Display flackert, wenn etwas über die Serielle Schnittstelle empfangen wird während die LEDs aktualisiert werden. (Man kann dies halbwegs einfach beheben, falls ihr Fragen dazu habt, schreibt in Slack im Elektronik-Channel, ich schau da ab und zu rein).

Hier noch ein paar Eindrücke vom Display

Links:

  • Git-Respository von xermic, welcher im Moment die Firmware des Displays unterhält: https://gitlab.luxeria.ch/xermic/ledisplay
    Bemerkung zur Firmware: Die Firmware im Repository bindet diverse Libraries ein und ist nicht unbedingt für Anfänger gedacht. Falls ihr dasselbe bauen möchtet und ein einfaches Projekt für den “Kickstart” braucht, meldet euch im Slack, ich kann Euch ein paar Zeilen Beispiel-Code liefern.