Vier leuchtende Salzkristalle auf einem Schreibtisch

Menschen lieben Dinge, die bunt sind und blinken. Deswegen faszinieren mich LED-Streifen. Außerdem habe ich bereits vor einiger Zeit ein paar Salzkristalle aus einem deutschen Steinsalzbergwerk erhalten. Diese möchte ich mit RGB-LEDs beleuchten.

Anstatt mir nun einen fertigen LED-Streifen mit Controller zu kaufen, habe ich beschlossen, mir beides selbst zu basteln, um die Salzkristalle zu beleuchten. Dabei werden vier RGB-LEDs von einem Arduino angesteuert und der Arduino-Sketch nimmt über die serielle Schnittstelle von einer PC-Anwendung die Farben der LEDs entgegen.

Die Software zur Steuerung der LEDs

Die entsprechende Software zum Ansteuern des LED-Streifens ist in Qt geschrieben. Das Design habe ich dabei durchgehend mit QML umgesetzt und die meiste Logik ist in JavaScript implementiert. Einzig zur Kommunikation mit dem Arduino über die serielle Schnittstelle habe ich eine C++-Erweiterung geschrieben.

Die GUI besteht im Wesentlichen aus zwei Komponenten, der Verbindung mit dem Arduino und der Ansteuerung der einzelnen LEDs.

Software zur Steuerung des LED-Streifens: Verbindungsanzeige Software zur Steuerung des LED-Streifens: Schalten einzelner LEDs

Neben den statischen Farben für die LEDs können auch noch drei dynamische Modi eingestellt werden.

Knight Rider

Software zur Steuerung des LED-Streifens: Knight Rider Modus

Rainbow

Software zur Steuerung des LED-Streifens: Rainbow Modus

Pulsate

Software zur Steuerung des LED-Streifens: Pulsate Modus

Der Arduino Sketch

Auf dem Arduino läuft ein kleiner 200-Zeilen Sketch, welcher mittels FastLED die vier LEDs als WS2812-Module ansteuert und auf der seriellen Schnittstelle auf Befehle lauscht. Dabei werden die folgenden Befehle unterstützt:

  • WHAT ARE YOU? gibt immer I AM A LEDSTRIP zurück
  • GET ALL gibt die Farben aller LEDs als hexadezimales RGB-Tripel zurück
  • GET LED <n> gibt die Farbe der LED n zwischen 1 und 4 zurück
  • SET LED <n> <RGB> setzt die LED n auf die gegebene Farbe

Der Quellcode für den Arduino Sketch und die Qt-Anwendung ist auf GitLab in dem Repository kalehmann/led_strip einsehbar.

Die Hardware

Das Ganze ist relativ spartanisch zusammengefrickelt. In die einzelnen Salzkristalle habe ich mit einem normalen Bohrer Löcher für die LEDs gebohrt.

Eine Bohrung in einen Salzkristall

Als nächstes habe ich die Basisstation zusammengebaut. Sie enthält einen Arduino Nano, ein paar Extras für die Stromversorgung und eine 3-Watt-RGB-LED. Immerhin ist das Chassis aus echtem Holz.

Das Chassis um den Arduino Das geöffnete Chassis um den Arduino

Arduino mit zusätzlichem Micro-USB-Port Ein einzelner Salzkristall neben seinem Holzsockel

Danach folgen noch drei einzelne PL9823-LEDs. Diese enthalten je einen WS2811-Controller und sitzen in Holzsockeln.

Leider ist die einzelne 3-Watt-LED nicht mit den restlichen LEDs kompatibel. Daher können die restlichen LEDs nicht mit ihr in Reihe geschaltet werden und deswegen wird die 3-Watt-LED separat an den Arduino angeschlossen.

Die Stromversorgung der LEDs funktioniert getrennt von dem Arduino über einen Micro-USB-Anschluss und wird durch einen Kondensator mit einer Kapazität von einem Farad gepuffert.

Schaltplan des LED-Streifens

Ergänzung (2026)

Ein schönes kleines Bastel- und Programmierprojekt. Die Software ist vom Funktionsumfang her jedoch sehr eingeschränkt. Mittlerweile ziehe ich für derartige Projekte WLED vor.