WS2812 mit Atmoduino


Mittlerweile ist das Ambilight schon etwas in die Jahre gekommen, lief aber bis zuletzt tadellos und war oft in Gebrauch.
Da einer meiner Monitore, an dem das Umlicht hing, den Geist aufgab und Kondensatoren tauschen keine besserung erziehlte, kaufte ich mir einen neuen, etwas Größeren.
Der alte Aufbau mit den RGB SMD Led's hätte für den Wechsel von 22 auf 27" einem kompletten Neubau untergezogen werden müssen.
Von der Unterbodenbeleuchtung des CrazyCarts hatte ich noch ein paar Meter WS2812 LED Streifen übrig. Mit 30€ für ganze 5m und 60 LEDs/m kosten die auch nicht viel mehr als normale SMD RGB LED Streifen.
Der Vorteil der WS2812 LED's liegt an dem eingebauten Chip, der Stromversorgung, sowie Ansteuerung jeder einzelnen LED übernimmt. Durch Aneinanderreihen, wie es die fertigen Strips machen, kann dieser an einem Ende durch Füttern mit Daten über 1Wire angesteuert werden.
Auch sind Arduinos mit fertiger Grundbeschaltung eines Atmel Atmega Chips nicht viel teurer, als solch ein Chip selber. Noch ein 5V Netzteil dazu und das Ambilight ist in der Theorie fertig.



Die Strips werden diesmal direkt mit doppelseitigem Klebeband an den Monitor geklebt.
Für die Ecken hab ich die Streifen zertrennt und mit drei kurzen Stücken Silikonkabel mit ausreichendem Querschnitt im rechten Winkel wieder verbunden.


Ganz so geil hällt der Kleber am Monitor nicht, evenutel muss ich da mal anderen ausprobieren.
Die Richtung des Datenflusses ist auf dem LED Strip angegeben. Bei mir beginnt er unten rechts (wenn man von vorne guckt) und verläuft im Uhrzeigersinn. Atmowin erwartet in seiner Grundeinstellung LED 0 oben links vom Monitor, was ich nicht in Atmowin sondern im Code des Arduino angepasst hab, da es mir deutlich einfacher erschien.


Die 112 LED ziehen bei voller Leuchtstärke gerade bei nur 5V eine menge Strom. Um auf der sicheren Seite zu sein hab ich ein 7A 5V Netzteil verwendet, das MEANWELL RS-35-5.


Nach etwas rumfrickeln mit dem Code des Arduino Nano und finden eines funktionierenden Atmowin Mods leuchteten dann auch die Farben an der richtigen Stelle. Als Basis diente mir Atmoduino mod von RickDB, was aber nicht so ganz funktionierte.
Durch leichte Anpassungen im Code konnte Atmowin dann schonmal mit den LED's sprechen. Allerdings blieb das Problem, dass wenn Atmowin zu viele Daten sendet und dabei welche durch bufferoverflow verloren gehen, die Implementierung der State Machine für das Atmoduino Protokol hängen bleibt. Um nicht jedes mal den Arduino neustarten zu müssen hab ich ein Timeout eingebaut, welches das Warten innerhalb der Zustände abbricht. Download: 20160324_AtmoDuino_ws2812.zip Benötigt wird zum Kompilieren noch die FastLED Library Als Hilfreichen Thread möchte ich hier noch diesen erwähnen: [DIY] Selfmade AmbiLight using LED Strings


Beim Software Weißabgleich musste Blau etwas heruntergedreht werden. Die Einstellungen der Filter und live Parameter sind durch einfaches Ausprobieren entstanden.


Zuletzt noch ein paar Simpsons Screenshots mit viel Bunt. Nicht nur sind es nun mehr 108 Kanäle mehr, auch die Farben gefallen mir etwas besser und heller sind sie auch ein wenig.
Als Nachteil möchte ich hier jedoch nicht den deutlich spürbaren Lag von etwa 500ms verschweigen. Ob es an Atmowin, der Seriellen Übertragung mit 115200 Baud oder dem 1Wire interface liegt hab ich noch nicht herausgefunden.
Trotzdem, für 30&euro: + 12€ + 3€ kann man insgesamt mit einem Bau nichts falsch machen.