Forum: Projekte & Code Moodlight mit ATMEGA88 und TLC5940 mit 4096 Farben


von Frank L. (franklink)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
hier mal wieder etwas für die jenigen, die noch nicht wissen was Sie zu 
Weihnachten schenken sollen.

1 x ATMEGA88 (8MHz)
1 x TLC5940
4 x RGB-LED

Das ganze kann mit und ohne Fernbedienung verwendet werden. Wird das 
#define WITH_FB auskommentiert, passt das Ergebnis sogar in einen 
ATMEGA48.

Mit Fernbedienung stehen die folgenden Funktionen zur Verfügung

1. fadeMode
Es werden 4096 Farben aus dem HSV Farbraum durchlaufen. Die Helligkeit 
und die Geschwindigkeit können geregelt werden. Es stehen 64 
Helligkeitsschritte und 10 Fadinggeschwindigkeiten zur Verfügung. Wobei 
die höchste also schnellste Stufe bei 100 Hz liegt und die langsamste 
bei 1 Hz.

2. normalMode
Im normalMode stehen 9 fest programmierte Farben zur Verfügung. Hierbei 
heisst festprogrammiert lediglich, das keine automatische 
Farbveränderung stattfindet. Die Farben können aber für jedes Progamm 
individuell angepasst werden. Hierbei können der Winkel H (0-360°) und 
die Sättigung (0-100%) jeweils in 4096 Schritten verändert werden. Die 
Helligkeit kann in 64 Stufen angepasst werden. Die Einstellungen können 
im EEProm gespeichert werden.

Ohne Fernbedienung funktioniert nur der fadeMode und dieser ist 
festeingestellt auf ein Intervall von 300 Hz

Ich habe das ganze zuerstmal auf einer Lochrasterplatine in der Größe 
9x9cm aufgebaut. Abgedeckt und eingebaut wird das ganze in einem 10x10cm 
großen Glaswürfel, der von innen gesandstrahlt wurde. Das ganze ist hell 
genug, um auch tagsüber ein schönes Bild abzugeben.

Die Struktur der Software ist aus den Wordclock Sourcen entnommen. Die 
Ansteuerung des TLC5940 erfolgt über Bitbang. GSCLK und Blank werden 
über Timer0 und Timer2 erzeugt. IRMP und die Ablaufsteuerung erfolgt 
über Timer1.

Gruß
Frank

von Joe M. (castro)


Lesenswert?

Hallo Frank,

danke das du uns an deinem Projekt teilhaben lässt. Ich habe deinen 
Sourcecode als Grundlage für mein eigenes Projekt genommen. Ich werde es 
demnächst hier im Forum vorstellen.

Ich habe eine Frage zur Lizensierung: Steht der komplette Code unter 
GPL2? Ich möchte für mein Projekt ein Git Repository eröffnen und bin 
gerade dabei, jede Datei mit einem Kommentar zur Lizenz zu versehen.

Gruß Joe

von Frank L. (frank_l)


Lesenswert?

Hallo Joe,
Du kannst den Code frei verwenden. Ich hänge nicht an einer bestimmten 
Lizenzform.

Gruß
Frank

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Naja, immerhin unterliegt IRMP der GPL. Damit (gezwungenermaßen) auch 
Franks Moodlight-Software ;-)

von Pete Z. (nrg1zer)


Lesenswert?

Hallo Frank,

ich finde es echt richtig gut von dir, dass du dein Projekt hier 
vorgestellt und geteilt hast. War seit Tagen am überlegen, was ich als 
nächstes Basteln werde und da kam dein Thread auch wie gerufen. Ich habe 
nur noch 2 kleine Fragen, bevor ich loslegen möchte und hoffe, dass du 
kurz Zeit hast mir diese zu beantworten.

1.Frage: Wie hast du das mit der Fernbedieung realisiert, was hast du 
dafür verwendet? Kann man da Sende- und Empfangseinheit kaufen?

2.Frage: Ich würde das gerne mit einem ATMega168 realisieren, da ich 
damit auch bei der Arbeit in naher Zukunft arbeiten werden. Ist es 
schwierig das Programm für einen ATMega168 zu ändern?

Vielen Dank fpr diesen Thread!

Gruß Pete

von Jonathan K. (jovak)


Lesenswert?

Für den ATmega168 musst du nichts ändern. Der einzige Unterschied liegt 
im größeren Flash-Speicher und die "Interrupt vector size" besteht aus 2 
statt 1 word, siehe dazu: Beitrag "was bedeutet eine größere Interrupt Vector Size"
steht auch im datenblatt auf seite 6

von Frank L. (frank_l)


Lesenswert?

Hallo Pete,
der 168 funktioniert ohne weiteres, wenn ich mich richtig entsinne.

Als FB kannst Du eigentlich fast jede handlesübliche FB verwenden. Da 
die Ansteuerung der FB über das Projekt IRMP realisiert ist, schaust Du 
am besten dort nach. Ich verwende immer so eine billige 4 in 1 oder 8 in 
1 FB da findest Du immer ein Protokoll das gut verwendbar ist. Im Eeprom 
ist der Code für eine RC5 kompatible FB abgelegt. In der Regel 
funktionieren damit alle Philips kompatiblen Teile.

Als Empfänger kannst Du einen TSOP1736 verwenden.
Bestellen kannst Du Ihn z.B. hier:
http://www.conrad.de/ce/de/product/171069/IR-EMPFAeNGER-MODUL-TSOP1736-4736

Ich kann Dir auch die Eagle Files für die Platine senden, wenn Du Bedarf 
hast. Es geht aber auch sehr gut mit einer Lochrasterplatine.

Bei Fragen kannst Du mich auch über PN direkt erreichen.

Gruß
Frank

von Joe D. (Gast)


Lesenswert?

Hallo Frank,

vielen Dank, dass Du uns Dein Projekt hier vorstellst sowie auch den 
Sourcecode bereitsstellst.
Bin seit dieser Woche auch am Suchen nach passenden Funktionen zur 
Umrechnung zwischen HSV und RGB.

In meiner Studienarbeit kann ich diesen Code wunderbar einsetzen zur 
Ansteuerung einer RGB-LED-Matrix mit einem XBox-Controller :)

Vielen Dank für Deinen Beitrag!

Gruß

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.