Hallo zusammen.
Ich wage mich an einen LED Cube heran, sollte ja allgemein bekannt sein
was das ist^^. Ich hab schon etwas programmiererfahrung, trotzdem könnte
ich noch ein paar Tipps zur Herangehensweise gebrauchen, bevor ich zu
hart auf die Nase falle...
Vorweg: Der Würfel ist noch nicht gebaut, hab erst mal die Bauteile
bestellt. Es soll ein 7x7x7 Cube werden, und mit einem atmega32 über 21
Pins angesteuert werden.
7 Dieser Pins werden gebraucht, um die Ebenen anzeusteuern, die
restlichen 14 werden für die "Säaulen" gebraucht.
Sprich, wenn ich 1 LED ansteuern will, brauche ich 3 Pins dazu.
Die frage ist nun eigentlich, wie ich das ganze möglichst ökonomisch
Programmiere. Ich mein, bei insgesamt 343 LEDs wird ja das innert
kürzester zeit extrem komplex und aufwändig, wenn mann alle paar
Millisekunden das Bild wechseln möchte.
Gibt es zB die Möglichkeit, dass ich die Pins für jede LED mal vorweg
definiere, und dann beispielsweise die einzelnen Ebenen (mit je 49 LEDs)
in Arrays ausgeben kann. Also dass dies dann sinngemäss etwa so
ausschaut:
Ebene 1 = 001110101010010100101010 (Hier dann insgesamt 49 Einträge)
wisst ihr ungefähr was ich meine?
grüsse
Serge
Wie das zu programmieren ist, hängt zuerst einmal vom genauen Aufbau der
Schaltung ab. Ohne Schaltplan kann dir vermutlich niemand brauchbare
Informationen geben. Also poste bitte einmal den Schaltplan!
> Die frage ist nun eigentlich, wie ich das ganze möglichst> ökonomisch Programmiere. Ich mein, bei insgesamt 343 LEDs> wird ja das innert kürzester zeit extrem komplex und aufwändig,> wenn mann alle paar Millisekunden das Bild wechseln möchte.
Das klingt danach, als ob du eine falsche Vorgehensweise hast.
Du musst unterscheiden zwischen 2 logischen Programmebenen.
Die eine beschäftigt sich damit, wie man das 3D Bild auf die LED bringt.
Das läuft über Timer und Multiplexen und läuft ständig im Hintergrund.
Dort ist der Mechanismus angesiedelt, der dafür sorgt, dass alle LED
optisch 'gleichzeitig' leuchten können.
Der andere Mechanismus beschäftigt sich damit, welche LED dann
eigentlich leuchten sollen. Dieser Mechanismus hinterlässt seine Ergüsse
in Variablen im Speicher, von wo dann der erste Mechanismus alles im
Takt zur Anzeige bringt. Für diesen Bilderzeugenden Teil hast du viel
Zeit, denn kein Mensch kann schnell genug schauen, dass er Veränderungen
im Millisekundenbereich wahrnimmt.
> Sprich, wenn ich 1 LED ansteuern will, brauche ich 3 Pins dazu.
Das klingt für mich nach einer falschen Vorgehensweise. Du wirst die LED
im Multiplexteil nicht alle einzeln ansteuern, weil du sonst mit der
Multiplexfrequenz nicht hinkommst.
hallo zusammen, besten dank erstmal für die kritischen Anmerkungen.
Erstmal zum Schaltplan: Ich hab mein Prinzip mal für 2 Ebenen à 8 LEDs
gezeichnet. (Sorry, leider nur von Hand, ich hoffe man kanns erkennen)
Auf jeder Ebene sind jeweils die Kathoden kurzgeschlossen und über einen
Transistor, welcher durch einen PIN gesteuert wird, mit GND verbunden.
Des weiteren ist jede Säule des Gitters über die Anode der LED
kurzgeschlossen (also insgesamt 49 Säulen à 7 LEDs.
Damit ich nicht 49 Pins benötige, steuere ich die entsprechende Säule
über 2 Pins an, welche durch 2 Transistoren logisch "verundet" sind.
Dies ist auch in der Skizze ersichtlich.
Macht das denn soweit sinn?
Zum Programmtechnischen Teil:
Ok, so halbwegs konnte ich folgen. Also wenn ich das richtig verstanden
habe "weiss" ein Teil des Programms, durch welche Pins welche LED
angesteuert werden kann, und ein anderer Teil enthält die Information,
welche LEDs zu einer bestimmten Zeit zum leuchten gebracht werden
sollen. Dabei übernimmt der erste die Funktion des Multiplexens. Hab ich
das soweit richtig begriffen?
liebe grüsse
Serge
Ich seh da jetzt nicht wirklich, wie das praktisch multiplexbar werden
könnte. Dadurch kannst du jede LED einzeln ansteuern, ja.
Aber das reicht nicht. Du kannst nicht einen 7*7*7 LED Cube dadurch
multiplexen, dass du alle LEDs einzeln durchgehst. Eine
Multiplexfreuqenz von 1:343 ist völlig indiskutabel. Soviele
Pferdestärken hat dein µC nicht :-) Selbst 1:49 ist schon mehr als
grenzwertig.
Warum siehst du dir denn nicht erst mal an, wie andere ihre Schaltungen
aufgebaut haben?
Kann natürlich auch sein, dass ich deine Skizze völlig fehlinterpretiere
:-)
hallo.
Ja, ich denke ich war da auf dem Holzweg. Wie ich nun herausgefunden
habe, muss ich meinen AVR beim Multiplexen unterstützen.
Bin nun auf die 74HC573 ICs gestossen und auf folgenden Schaltplan:
http://www.leyanda.de/light/images/led_cube_control.jpg
könntest du mir evtl. rasch erklären, wie genau diese ICs funktionieren?
grüsse
serge
hallo, ich nochmal
Also, ich hab jetzt noch ein bischen recherchiert, wobei noch die einte
oder andere frage entstanden ist.
So wie ich das nun verstanden habe, wird bei meinem 7x7x7 Cube das Bild
Zeilenweise und nicht punktweise dargestellt. Pro ebene sind das 7
Zeilen, für den gesamten Würfel 49. Karl meinte ja, dass 1/49 schon
grenzwertig wären für die leuchtfrequenz. Lässt sich das noch
optimieren?
Eine weitere Frage: Ich habe gelesen, dass man den LED strom erhöhen
muss, um die Leuchtkraft beim Multiplexen gleich zu halten.
Gekauft habe ich diese LEDs von ebay:
http://cgi.ebay.ch/ws/eBayISAPI.dll?ViewItem&item=250859436682&ssPageName=ADME:L:OU:CH:1123
das problem ist nun, dass ich zu diesen LEDs kein datenblatt habe. Ich
weiss also nicht, welchen strom ich bei 1/49 Multiplexfrequenz
gebrauchen kann. Die LEDs haben einen Betriebsstrom von 20mA
liebe grüsse
serge
Serge schrieb:> Zeilen, für den gesamten Würfel 49. Karl meinte ja, dass 1/49 schon> grenzwertig wären für die leuchtfrequenz. Lässt sich das noch> optimieren?
Natürlich. Wenn immer eine komplette Ebene leuchtet, also alle 49 LED
einer Ebene, hast du eine Multiplexfrequenz von 1:7
> Eine weitere Frage: Ich habe gelesen, dass man den LED strom erhöhen> muss, um die Leuchtkraft beim Multiplexen gleich zu halten.
Stell dir vor, alle LED deines Cube sollen leuchten.
Jede LED leuchtet aber nur 1/49-tel der kompletten Zeit. Entsprechend
erscheint sie dunkler.
> das problem ist nun, dass ich zu diesen LEDs kein datenblatt habe. Ich> weiss also nicht, welchen strom ich bei 1/49 Multiplexfrequenz> gebrauchen kann. Die LEDs haben einen Betriebsstrom von 20mA
Dzu kannst normalerweise auf 70, 80, vielleicht auch 100 mA gehen. Aber
das 49-fache von 20mA (das wären 980mA) ist definitiv nicht drinnen. Da
macht es Knacks, stinkt charakteristisch und du darfst die LED wechseln.
> Natürlich. Wenn immer eine komplette Ebene leuchtet, also alle 49 LED> einer Ebene, hast du eine Multiplexfrequenz von 1:7
Einverstanden. Nur dürfte dies ja eher die ausnahme als die norm sein.
> Dzu kannst normalerweise auf 70, 80, vielleicht auch 100 mA gehen. Aber> das 49-fache von 20mA (das wären 980mA) ist definitiv nicht drinnen. Da> macht es Knacks, stinkt charakteristisch und du darfst die LED wechseln.
Ok, also wenn ich meine LEDs mit sagen wir 5V betreibe, sollte ich für
jede LED ca 60 Ohm Widerstand schalten. Stimmt das so?
Ich habe noch von einem Treiber gelesen, welcher gebraucht wird, wenn
relativ viel Strom durch die Schaltung geschickt wird. Ist dies für mein
vorhaben ebenfalls notwendig?
grüsse
serge