Nabend,
so hier im Anhang der Schaltplan und die Programmierung. Letztere ist noch etwas quick and dirty aber funktioniert erstmal
Ich erklär mal das Prinzip:
Das Arduino Ethernet Board (kosten so um die 50 Eur) ist ein programmierbarter Microcontroller mit (sagt ja der Name schon) Ethernet Anschluß.
Die Programmierung erfolgt (anders als bei den üblichen Arduino Boards) nicht über eine USB Schnittstelle sondern über ein serielles USB Interface (Mal bei Amazon nach FTDI Kabel suchen (14,99 Eur). Auf dem Controller kann dann mit kleinstem Aufwand ein HTTP Server laufen. Dieser kann abhängig von den Requests die Ausgänge des Microcontrollers steuern.
Damit kommen wir zur Ansteuerung der
LED Stripes. Die meissten Stripes haben eine gemeinsame +12 V Versorgung und für jede Farbe einen einzelnen Ausgang der
LED Kathode. Je nachdem wie hell die jeweilige Farbe jetzt leuchtet wird eine Mischfarbe erzeugt. In meinem Fall werden die Kathoden der
LED Stripes über ein MOSFET auf Masse gezogen. Gesteuert wird der jeweilige Farbkanal über die PWM (Pulsweitenmodulation) Ausgänge des Arduino. Damit kann also die
jeweilige Farbe recht einfach gedimmt werden.
Komplette Hardwarekosten belaufen sich auf um die 60 Euro (ohne das optionale Relaismodul bzw das Programmierkabel)
Der Rechte Teil der Schaltung ab J6/R5 ist optional. Da der Controller noch freie Ausgänge hat habe ich einfach diese über einen Treibertransistor noch mit einem Relais versehen man kann die also noch einzeln als geschaltete Ausgänge nutzen.(In der derzeitigen Software noch nicht implementiert).
Die Software ist so geschrieben, das das Board sich via DHCP eine IP vom Router holt. Ein Request
http://ip/?r=[0-255]&g=[0-255]&b=[0-255] schaltet dann die jeweilige Farben. Die Software versucht schon die Farben beim Wechsel nicht hart zu wechseln sondern entsprechend überzublenden.
Ich hab der CCU ein Programm verpasst welches auf einen Wandtaster reagiert und den anzuzeigenden Farbwert in eine Systemvariable schreibt.
Ein zweites Script reagiert auf die Änderung der Variable und erzeugt den passenden HTTP Call. (Das habe ich deswegen getrennt, weil ich ein Script habe was alle Lichter aus schaltet und an der Stelle nur die Variable geändert werden muss)
Die Software des Boards muss sicher noch angepasst werden so ganz zufrieden bin ich noch nicht, aber make it run then make it right
Denkbar wäre hier noch eine eigene Weboberfläche für die Steuerung der
LED Stripes (auf dem Ethernet Board ist noch ein SD Slot der genutzt werden kann um html Dateien zu speichern die der Webserver dann ausliefert)