3x3x3 LED Cube

Da ich während des Studiums (2010) immer wieder mit Assembler konfrontiert wurde, beschloss ich, mich darin etwas zu üben. Nun, eine Anwendung musste her. Die "Simulation" eines Displays am PC ist nix für mich, als Praktiker.

Mir fiel ein, LED-Cubes auf Youtube gesehen zu haben. Sofort war mein Interesse geweckt, auch einen solchen zu bauen. Aufgrund geringer Erfahrungen mit µControllern wurde erstmal nur ein mini.Cube (3x3x3) geplant. Falls sich jemand für den Nachbau interessiert, sollte er etwas Zeit einplanen. Allein das Biegen der LEDs und löten der Matrix dauert ca. eine Stunde. Alles in allem ist das Projekt an einem Nachmittag machbar, je nach Löt-Erfahrung und Arbeitsweise.

Schaltplan:

Um die Versorgungsspannung so variabel wie möglich verwenden zu können, kommt natürlich auch ein Spannungsregler Typ 7805 zum Einsatz.
Als µController kommt ein ATtiny2313 zum einsatz. Begründet wird dies mit ausreichend IO-Pins und der vergleichsweisen einfachen Handhabung. Zum einarbeiten sicherlich keine schlechte Variante. Man hätte auber genauso gut einen ATMega8 nehmen können...der Tiny ist aber ca. 70ct billiger und genügt. Da der ATtiny bis zu 40mA sourcen kann, müssen auch keine Treiberstufen verwendet werden, um die LEDs anzusteuern. Lediglich zum schalten der Kathoden (Low-Side) wird ein Transistor des Typs BC337 verwendet. Der 2,2k Basisvorwiderstand ist ein zufällig gewählter Wert. Davon hatte ich viele auf Lager
Die 330 Ohm Vorwiderstände für die LEDs habe ich so dimensioniert, dass maximal 30mA fließen. Aufgrund des nichtvorhandenseins eines Datenblattes (China-LEDs) empfiehlt sich diese Methode...ansonsten muss man natürlich einfach den dynamischen Widerstand der LED in die Rechnung einbeziehen, da LEDs KEINE linearen Bauelemente sind.
Als zusätzliches "Schmankerl" natürlich noch ein ISP-Anschluss, um nicht immer den µC in das Eva-Board stecken zu müssen, falls das Programm geändert werden sollte.
Die Leds hab ich mittels Stiftleisten trennbar von der Platine vorgesehen...

Schaltplan und Layout mit Target3001! erstellt: (keine Schleichwerbung..im gegensatz zu vielen anderen bin ich der Meinung, dass Target brauchbar ist )

3x3x3 LED Cube Schaltplan
Der Aufbau:

Begonnen habe ich mit einem Stück Acrylglas welches ich noch da hatte. Darin wurden 9 Löcher (3mm Durchmesser) in 20mm Abständen gebohrt. In die Löcher wurden dann die LEDs gesteckt, wobei ich vorher in die Anoden einen kleinen Versatz, sowie die Anoden um 90° gebogen habe. Nach dem verlöten nimmt die Ebene Form an und wird auch etwas stabiler. Beim löten ist darauf zu achten, nicht zu nah an die LED-Körper zu kommen. falls doch mal was schief geht, hilf der schnelle Einsatz von Kältespray. Das Ganze wird dreimal aufgebaut, und schlussendlich werden die 3 Ebenen zusammengefügt (jeweils die Anoden). Um die Anoden auf die gleiche länge zu trimmen, empfiehlt sich der Einsatz eines Messschiebers und einer Markierung. So sollte der vorerst fertige LED-Würfel aussehen:

3x3x3 LED Cube roher Wuerfel
Nachdem der Würfel seine Form angenommen hat, geht es weiter mit der Steuerplatine. Mein Bestreben die Platine so klein wie Möglich zu halten ließ es leider nicht zu, ohne Drahtbrücken und Litze auf der Platine auszukommen...Dennoch bin ich mit dem Ergebnis recht zufrieden. Nun empfiehlt sich ein Test, ob alles Funktionstüchtig ist. Auf jeden fall sollten die Preiswert-LEDs auch auf ihre Haltbarkeit geprüft werden. Dazu habe ich den LED-Würfel einfach 24h dauerhaft leuchten lassen. Dies ist insofern Notwendig, da manche unselektierte LEDs zum schnellen Ausfall neigen. Des Weiteren ist Sinnvoll, die LEDs entweder von "unten" oder die Linsen zu lackieren. Leider mir zu spät aufgefallen, tat ich dies erst nach Fertigstellung des Würfels. Nützlich ist ein Edding (hier Industriemarker) um den Anstrahleffekt der unteren LEDs in die höher gelegenen zu unterbinden, und eine bessere Leuchtwirkung zu erzielen.

3x3x3 LED Cube Linsen lackieren
Optional (und Empfehlenswert) könnte man noch ein kleines Acrylglas-Gehäuse fertigen, damit die Platine nicht auf der Lötseite unbedeckt rumliegt, und der LED-Würfel einen festen Stand bekommt. Nun noch ein kleiner Kippschalter installiert, um den Würfel auch Aus schalten zu können, ohne die Stromversorgung unterbrechen zu müssen. Fertig sieht das Projekt dann so aus:

3x3x3 LED Cube fertig!
Programmierung:

Die Programmierung des Würfels erfolgte mittels Assambler-Sprache um diese näher kennen zu lernen. Empfehlenswert ist dies jedoch nicht, da es viel günstiger ist mit C oder Basic. Aufgrund der erhöhten Nachfrage habe ich nun doch ein kleines Beispielprogramm in C erstellt. Öffnen und kompillieren lässt sich das Projekt mit AVRStudio 4.19.

Da LEDs einzeln zu teuer sind, kauft fast jeder der mit LEDs hantiert Großpackungen aus Fernost. Diese sind um einiges preiswerter als hierzulande, jedoch auch von schlechterer Qualität (Unselektiert, schlecht entgratet, oder durch den Transport beschädigt). Deshalb habe ich die LEDs aus der Stückliste raus genommen. Mehr als 15ct pro ultrahelle LED sollte man aber nicht investieren. Ebenso die Platine. Ein kleines Stück von 50x60mm hat jeder rumliegen. Die Stückliste ist dem Download angefügt.

DOWNLOAD

Hiernoch eine kleine Erklärung zu dem Quellcode. Im Quellcode wurde versucht möglichst gut für Anfänger zu kommentieren. Dieses Bild gilt einfach nur als ergänzender Hinweis:

3x3x3 LED Cube Erklärung Arrays
Video: 

leider schlechte Quali...wegen Webcam ein Besseres Video folgt dann beim 8x8x8 Cube


Projekt von: 08/2011

EDIT:

Um auch ASCII-Zeichen darstellen zu können und den ATtiny noch mehr auszureizen ist es theoretisch möglich eine 3x3x6-Matrix aufzubauen. Für ASCII Zeichen genügt jedoch eine 3x3x5 LED Matrix. Im Zuge der privaten Leiterplattenfertigung (siehe Artikel unter Tipps und Tricks) habe ich ein Test-Layout entworfen und aufgebaut.

3x3x5 LED ACSII Cube
Der Aufbau der Matrix und die Verschaltung mit dem Microcontroller ist analog zu der 3x3x3 Würfelmatrix. Allerdings stößt man bei der Programmierung der Matrix dann schnell an die Grenzen des ATtiny2313. Insgesamt habe ich nur knapp 150 "Bilder" in den µC laden können, dann ist der magere 2k-Flash voll. Eine Möglichkeit mehr aus dem Aufbau rauszuholen wäre die Verwendung des ATtiny4313 Microkontrollers. Die Pinbelegung ist identisch zum ATtiny2313 aber immerhin besitzt der ATtiny4313 den doppelten Flashspeicher (4k) und das für nur wenige Cent Aufpreis.