Lichtspiel

Pirx

Mitglied
15. Aug. 2009
305
14
18
Möckern
Sprachen
  1. Assembler
Hallo zusammen,

das Lichtspiel (ich nenne es mal so) gehört zu einem gravierten Glasblock. Den wollte ich nicht einfach so verschenken sondern mit zünftiger, batteriebetriebener Beleuchtung.

Das Kästchen unter dem Glasblock enthält eine 3fach LED (RGB), die mittels 3kanal Soft PWM angesteuert wird. Ein ATtiny24 realisiert 4 Lichtshows mit verschiedenen Farbwechseln und -übergängen. Gestartet wird per Tastendruck, dann läuft eine der Shows für 2 Minuten und der Prozessor legt sich wieder schlafen (Powerdown). Beim nächsten Tastendruck läuft dann das nächste Programm.

Programmiertechnisch laufen da zwei Tasks parallel. Einer macht die Soft-PWM und der zweite sorgt für die Choreografie der Lichtshow, indem es die Parameter für die Soft-PWM im Lauf der Zeit entsprechend ändert. In diesem Fall sind die Änderungen eher langsamer (Mutter ist halt schon etwas älter) aber die "Maschine" ist da flexibel, kann auch schnelle Übergänge, Stoboskopeffekte ect. realisieren.

Die Stromversorgung erfolgt mit 4x Mignon, die rechnerisch bei 10x Betrieb pro Tag ca. 1 Jahr halten. Batteriebetrieb war hier erklärtes Ziel - mit Netzbetrieb wäre das alles sehr viel einfacher gewesen.

Anbei ein paar Fotos. Hier wäre natürlich ein Video besser aber da mangelt es mir an brauchbarer Aufnahmetechnik. Ich bin halt ein passionierter Fotograf ...
 

Anhänge

  • Lichtspiel_1.jpg
    Lichtspiel_1.jpg
    82,5 KB · Aufrufe: 61
  • Lichtspiel_2.jpg
    Lichtspiel_2.jpg
    99,8 KB · Aufrufe: 57
Hallo Pirx!

Nette Beleuchtung für den Würfel. :)

Ich habe hier auch noch so einen schönen Glaswürfel mit einem gelaserten 3D-Effekt, den würde ich auch gern noch mit einer RGB-LED beleuchten.

Gerade deine Batterielösung finde ich super!
Kannst du dazu mal ein paar Details einstellen?
Anschlussplan und welche RGB-LED diu verwendet hast?
Wegen dem Batteriebetrieb wäre auch ein Auszug vom Programmcode ganz interessant... in Punkto Farbabläufe und PWM.

Hast du den Taster lediglich auf einen externen INT gelegt, um den AVR aus dem PowerDown-Modus zu holen?


Wie schon erwähnt.... ich würde mich über ein paar weitere Infos freuen.

Grüße,
Cassio
 
Hi Cassio,

aber gerne.

Die LED ist eine schön kleine in SMD-Bauweise mit breitem Abstrahlwinkel - gekauft bei Reichelt :
http://www.reichelt.de/?ACTION=3;GR...8AAAIAACI4cvsed518cb7491fbd6e3a6653ac98d36318

Aufwecken mit dem Taster läuft ganz simpel über RESET. Welche die letzte Show war, wird im EEProm abgespeichert.

Der Batteriebetrieb war tatsächlich eine Herausforderung. Einerseits braucht man genug Spannung für die LEDs, anderderseits nicht zuviel für den µC. Realisiert habe ich das dann mit 4x Mignon in Reihe, wobei ich in der Mitte 3V für den µC abgegriffen habe. Die Mehrbelastung für die beiden Zellen liegt bei gut 1mA. Das fällt praktisch kaum ins Gewicht, die LEDs brauchen im Schnitt gut das 10fache an Strom.

Die Vorwiderstände für die LEDs sind so gewählt, dass das Licht aller drei zusammen bei 5V weiß ist. Bei 6V geht's etwas ins blaue und bei 4V etwas ins rote aber es ist ja sowieso ein Farb-Lichtspiel. ;)

Programmiert habe ich das in Assembler. Das liefere ich morgen nach. Dazu muss ich etwas mehr erklären.

Gruß
Pirx
 

Anhänge

  • Lichtspiel.pdf
    11,6 KB · Aufrufe: 31
Hallo Pirx!

Danke erst einmal, für die Infos zur SMD-LED und die Idee mit dem Mittelabgriff bei den Batterien. :)

Wenn ich mir den Plan so ansehe, dann müsste doch ein Tiny25 auch ausreichen...... oder gibt es damit Probleme beim PWM? :hmmmm:

Muss ich mir mal das Datenblatt heraus suchen.
Den Tiny25 hätte ich sogar noch in SMD hier liegen und Transistoren auch.

Mal sehen, wann ich damit zum Testen komme. :rolleyes:
Das Schwierigste ist sowieso immer das Gehäuse.....

Ach so....
Du darfst gerne dein Programm hier vorstellen! Da es aber in ASM geschrieben ist, werde ich davon nicht viel verstehen..... aber einige Andere hier. ;)


Schöne Grüße,
Cassio
 
Hi Cassio,

Wenn ich mir den Plan so ansehe, dann müsste doch ein Tiny25 auch ausreichen...... oder gibt es damit Probleme beim PWM? :hmmmm:
Soft-PWM ist Soft-PWM ... das geht auf jedem ;)
Einfach nen Rampenzähler und dann mit 3 verschiedenen Schwellwerten
vergleichen. Damit dann die 3 Ausgänge für die LEDs entsprechend setzen.
Fertig ist die Soft-PWM ;) Läßt sich recht schnell programmieren ...
Bei meinem Magierstab (siehe Projekte) hab ich das sogar mit 4 Kanälen
(rot, grün, blau, weiß) gemacht und zusätzlich ne Farbmischtabelle eingebaut.
Damit konnte ich mir das mit den verschiedenen Widerständen sparen und
bei den Einzelfarben das Maximum aus den LEDs rausholen.
Ach ja ... bei mir wars auch Assembler :D auf nem AT90S2313 (out of sale)

Gruß
Dino
 
Hi Cassio,

das geht natürlich auch mit anderen Prozessoren. Den 24er hatte ich halt greifbar. Die Soft-PWM läuft so, wie Dino es schon beschrieben hat.


Zum Programm :

Der ATtiny24 läuft auf 1MHz (8MHz intern /8).

Timer1 (16Bit) mit Prescaler 1024 läuft ca. 1 Minute. Beim zweiten Overflow erfolgt in dessen Interruptroutine der Powerdown.

Für die Soft-PWM wird der Timer0 verwendet. Der läuft mit Prescaler 256 (mit ca. 4kHz) und auf CompareA (CTC-Modus). Der Compare-Wert für den Timer0 legt die Anzahl der PWM-Schritte fest. Bei dem von mir verwendeten Wert ergibt sich eine PWM-Frequenz von gut 80Hz.


Anmerkung :
Der angehängte Programmauszug ist nicht lauffähig, weil auf die Soft-PWM und die Show reduziert. Zwecks Übersichtlichkeit habe ich das ganze "Beiwerk" weggelassen.


PWM :
Im Hauptprogramm wird permanent der Timerstand abgefragt. Bei Null (nach Ausführung der ISR/ISRFlag) werden die LEDs ein- und bei Erreichen des Endwerts (EndRt, EndGn, EndBl) ausgeschaltet.

Show :
Für jede Show gibt es zwei Subroutinen. Nach RESET werden einmalig die Startwerte geladen (show0_st). Die Änderungen während der Show kommen zustande durch Aufruf der Subroutine show0 innerhalb des Hauptprogramms (nur nach Ausführung der Timer0-ISR).

Das Show-Timing erfolgt über einen Zykluszähler (Count), der in der Timer0-ISR hochgezählt wird. In der Show0 werden so nur bei jedem 4. Mal die Werte verändert. Art und Geschwindigkeit der Änderung kann man zudem mit entsprechenden Werten in RtAdd, GnAdd und BlAdd beeinflussen.

Durch Modifikation der Startwerte, des Timings und der Berechnung lassen sich verschiedenste Lichtshows erzeugen. Alternativ zur Berechnung der neuen Werte könnte man diese natürlich auch aus einem Datenfeld holen.

Gruß
Pirx
.
 

Anhänge

  • 3kanal-PWM.asm
    3,6 KB · Aufrufe: 11
Hallo Pirx,

Dein Lichtspiel gefällt mir sehr gut. Ich habe vor Weihnachten für meine Tochter ein ähnliches Kistchen gebaut. Wir waren für ein paar Tage in Thüringen und haben die Marienglashöhle besucht. Dort bekam meine Tochter einen Brocken Marienglas, also einen klaren Gipskristall der nun jeden Abend ihr Zimmer in allen Regenbogenfarben beleuchtet.
Allerdings habe ich mit Kanonen auf Spatzen geschossen und einen Mega8 spendiert, der lag gerade rum :)

Grüße,
Markus
 
Hallo,

Allerdings habe ich mit Kanonen auf Spatzen geschossen und einen Mega8 spendiert, der lag gerade rum :)
meine Test-Kanonen hab ich gestern auch schon zusammengelötet ;)
3x 0,1 Ohm , 3x 2,7V ZDiode 1,3W , 1x 10 Ohm , 1x Superhelle LED 5mm
... das ergibt ... ne Dummy-LED um nen getaktete Stromquelle mit PWM für
eine 5W-LED zu testen. Davon kommen dann 10 LEDs in den RGB-Kopf und
dann wolln wir mal sehen ;) ... Der Magierstab Version 2.0 :D
Oder meint ihr das 50W-LED-Leistung zu wenig ist ?
... Hhhmmm ... mal nachdenken :rolleyes:

Eventuell wenn es die Zeit zuläßt werde ich diese Woche nochmal schnell
einen der Konstantstromquellen auf dem Steckbrett aufbauen.

Gruß
Dino
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)