Hallo Leute,
ich möchte euch mal mein letztes Projekt vorstellen. Ich habe mir einen eigenen kleinen Controller für bis zu insgesamt 15 High-Power-LEDs gebaut. Das ganze Ding ist ansich sehr einfach aufgebaut und nicht sonderlich kompliziert. Mein Ziel war es mir ein Zimmer nach meinen wünschen ausleuchten zu können um entsprechend Stimmung bzw. Atmosphäre für entsprechende Stituationen erzeugen zu können.
Die ganze Schaltung benötigt einen Stromanschluss mit 5V von einer entsprechend belastbaren Quelle (ich verwende ein altes Computernetzteil). Das Herz des ganzen ist ein ATmega32 µC. Ein Programmieradapter ist ebenfalls direkt mit eingebaut um die SW relativ flexibel ändern zu können. Zusätzlich habe ich noch einen AMV aus einem NE555 dazugebaut, in den man nach belieben die Widerstände und somit die Taktrate ändern kann. Der µC selber bekommt seinen Takt von einen üblichen Quarz, in dem Fall mit ca. 10MHz.
Im Augenblick hat der Controll vier Betriebsmodi, die man natürlich im Betrieb beliebig umschalten kann. Der erste ist ein manueller Modus, man kann halt einstellen welche Farben leuchten sollen und welche nicht, allerdings nur voll an oder komplett aus.
Die nächsten beiden Modi sind relativ gleich. Den AMV kann man auf sehr sehr geringe Taktzeiten einstellen, so das der z.B. alle 10 Min. von 0 auf 1 welchselt. Immer wenn das passiert, ändert sich bei diese Modi das Licht zufällig in eine andere Farbe. Der genaue Unterschied zwischen den beiden Modi ist nun, das der eine auch nur die Leds komplett an oder aus machen kann und der andere die per PWM auch dimmen kann. Somit ergeben sich viele viele mögliche kombinationen, da jede Farbe in 255 Zwischenstufen aufgeteilt ist. Der Fall, das mal zufällig alle Leds ausgeschaltet werden wird abgefangen und kann somit nicht vorkommen.
Man muss sich halt vorstellen das man in gemütlicher Runde zusammen sitzt und sich z.B. alle 6 Min. (ca. alle zwei Songs) das Licht ändert.
Alle Übergänge werden per PWM weiche und linear gefadet.
Der letzte Modus ist so eine Art Partymodus, allerdings wohl eher eine Spielerei von mir. Da man alle LEDs separat ansteuern kann, kann man ein "Blicklichtprogramm" programmieren, das halt alle LEDs in einer Reihenfolge nacheinander blicken. Ist ein wenig blöd zu erklären. Um das nicht in Assembler programmieren zu müssen, habe ich eine PHP-Skript geschrieben, mit welchem man einzelne Schritte angeben kann. In jedem Schritt kann man sagen welche LEDs an bzw. aus sein sollen und wie lange bis zum näcshten Schritt gewartet werden soll. Das Skript erzeugt dann eine kommentierte Assemblerdatei, die man nur noch kompilieren und auf den µC übertragen muss. Man kann so viele Schritte angeben, bis den Speicher vom ATmega32 voll ist. Ein Bild von dem Skript ist diesem Beitrag auch angehangen.
Als weitere Spielerei, habe ich mir neulich noch eine simple 3-Kanal-Frequenzweiche gebaut. Diese kann man an die Steuerung anschließen, die dann folglich lustig nach der Musik leuchtet, welches übrigens, zu meiner Überraschung, erstaunlich gut funktierniert. Dafür auch der Stromanschluss für externe Geräte.
So, das solls erstmal von mir gewesen sein. Falls jemand noch Fragen oder sonstiges hat, stehe ich gern zu Verfügung.
Wenn jemand Schaltpläne, Assemblercode oder sonstiges haben möchte, soll auch kein Problem sein, werde alles gern hier Veröffentlichen.
Schönen Gruß
Ansicht von oben:
[gallery]http://www.ledstyles.de/index.…D=816&type=page&from=user[/gallery]
Ansicht von oben mit Beschreibungen:
[gallery]http://www.ledstyles.de/index.…D=817&type=page&from=user[/gallery]
Skript zum erzeugen von Assemblerdateien:
[gallery]http://www.ledstyles.de/index.…D=818&type=page&from=user[/gallery]