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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.