Forum: Mikrocontroller und Digitale Elektronik LED Cube 7x7x7 in Bascom


von Serge (Gast)


Lesenswert?

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

von Seltener Gast (Gast)


Lesenswert?

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!

von Karl H. (kbuchegg)


Lesenswert?

> 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.

von Serge (Gast)


Angehängte Dateien:

Lesenswert?

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

von Serge (Gast)


Lesenswert?

huhu^^

von Karl H. (kbuchegg)


Lesenswert?

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 
:-)

von Serge (Gast)


Lesenswert?

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

von Serge (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von Serge (Gast)


Lesenswert?

> 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

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.