Deko-Leuchten Elektronik

MoodLight 2×2 (Teil 3 – Elektronik)

geschrieben von Nino Turianskyj

Shop-Artikel verfügbarLEDs
Als LED-Basis dienen Samsung-RGB-LEDs, die sich durch viele positive Eigenschaften bewährt haben. Von Vorteil war dabei, dass ich bereits Stripe-Platinen dafür fertigen ließ. Das gesamte Gehäuse hat eine Abmessung von 30x30cm, so dass meine 25cm langen Platinen (geteilt) ideal dafür passen. Nach kurzem Test habe ich mich für 9 LEDs pro „Pixel“ entschieden. Insgesamt dienen also 36 LEDs als Grundlage. Da je 3 LEDs in Reihe geschaltet sind, werden 12V als Betriebsspannung verwendet.

LED-Stripes

LED-Stripes

Stripe-Verkabelung

Stripe-Verkabelung

blank

LED-Stripes auf der Grundplatte

LED-Stripes auf der Grundplatte

fertige Grundplatte

fertige Grundplatte

blank

Steuerung
Die Steuerung macht das eigentliche MoodLight. Klar geht man hier auf Mikrocontroller. Anbieten würden sich verschiedene Varianten wie DMX zur Steuerung oder auch die beliebten TLC-Chips, wie sie synvox auch auf seiner RGB-Wall verwendet.

Da es sich bei 2×2 RGB-Pixeln nur um 12 Kanäle handelt und das Modul auch einzeln betrieben werden soll, habe ich mich für Software-PWM entschieden. In Mikrocontroller.net gibt es einen sehr guten Artikel, der verschiedene Varianten beschreibt und dabei in Hinblick auf die Prozessor-Auslastung Optimierungen vornimmt. Leider wird dabei maximal ein Port angesprochen, also nicht ausreichend Kanäle. Für die Erweiterung fehlte mir etwas die Ruhe, so dass ich nach ein wenig Suchen das passende (darauf aufbauende) gefunden habe: http://www.the-powl.de/knowhow/softpwm/index.php.

Damit war die Grundlage geschaffen. Jetzt galt es nur noch, die MoodLight-Programme zu entwerfen. Entwickelt habe ich zunächst mit meinem myAVR-Entwicklungsboard und vier angeschlossenen RGB-LEDs sowie dem Encoder. Das erste Testprogramm macht dabei nichts weiter, als alle Farben (also weiß) gleichzeitig langsam hoch- und wieder herunterzufahren. Im MoodLight-Programm läuft das dann diagonal und jeweils invertiert ab.

Das Programm 2 ist ein RGB-Fading-Programm. Die Farben werden hintereinander durchlaufen (Regebogen-Fader). Auch hier ist der Effekt über die Diagonale und invertiert hergestellt.

Das eigentliche MoodLight-Programm folgte dann. Die Idee dahinter: für jedes Pixel wird per Zufall eine Farbe errechnet. Von der aktuellen Farbe wird dann weich auf die Zielfarbe geblendet (Fading), und das für alle vier Pixel. Da die Differenz unterschiedlich sein kann, läuft eine Farbe ggf. länge als die andere. Dann folgt eine einstellbare Wartezeit, bis die nächste Überblendung folgt. Da dieses Verfahren mit den drei RGB-Kanälen sehr aufwendig ist, habe ich mich entschlossen, das HSB-Modell zu verwenden. Dies hat den angenehmen Nebeneffekt, dass man die Helligkeit einstellen kann. Der Einfachheit halber habe ich den Wert für die Sättigung konstant auf Maximum gehalten. Somit muss je Pixel nur noch ein Wert „gefadet“ werden.

Nach dem gleichen Prinzip erfolgte die Entwicklung des „Farbrades“. Eine Basis-Farbe wird als Ausgangswert im HSB-Modus festgelegt und anschließend wird der Wert stetig erhöht. Da der HSB-Farbraum ein Kreis (bzw. Kegel) ist, springt am Ende des Wertebereiches die Farbe nicht einfach um, sondern beginnt von vorn. eigentlich ganz einfach.
Abgerundet wird alles durch eine fest einstellbare Farbe. Hier kann man nach belieben die Farben definieren. Diese werden aktuell noch im RGB-Mode festgelegt. Damit findet auch keine Helligkeitsregelung statt. Hier kann man noch eine Umstellung auf HSB vornehmen.

Das letzte Programm ist eigentlich gar kein Programm. Es zeigt einfach nur die 4 Farben des Farbkreises an und ermöglicht die Einstellung der Helligkeit. Dies war erforderlich, das nur ein Encoder als Bedienelement angeschlossen sein sollte. Für spätere Anwendungen könnte man noch zwischen kurzem und langem Tastendruck unterscheiden.

Schaltung/Platine/Software

Die Schaltung zum MoodLight ist relativ einfach. Der Mikrocontroller (ich habe einen ATmega8 verwendet) hat an 12 Ausgängen Darlington-Treiber (ULN2003) angeschlossen und liefert so die PWM-Signale an die LEDs. Neben der Spannungsversorgung ist noch der Anschluss für den Encoder auf der Platine. Als Buchsen/Stecker hatte ich noch 4-polige von Hirose da, die im 2mm-Raster sind.

Platine der Steuerung

Platine der Steuerung

fertig bestückte Platine

fertig bestückte Platine

blank

Der Aufbau ist einseitig möglich (2 Brücken), so dass man die Platine bequem selbst herstellen kann. Einige Änderungen/Verbesserungen sind im Layout sicher noch notwendig, aber es funktioniert auch so.

MoodLightSchaltung.zip

Die Software für den Controller wurde in C geschrieben und ist in der beschriebenen Version enthalten.

MoodLight2x2_V1.zip

Kommentar hinterlassen

*