Cube3D |
|
IdeeDie Idee eines 3D-Würfels aus RGB-LEDs ist nicht neu, Beispiele gibt es z.B. den
Borg3D oder den
Hypnocube. Nicht schlecht ist auch
dieses Teil. Der PlanGeplant war also ein 4x4x4 Würfel aus RGB-LEDs, die einzeln
dimmbar sein sollen. Dass das geht zeigten meine ersten Tests, in denen
ein AVR Mega8 192 LEDs ansteuerte (mit Schieberegistern). Die LEDs, die per 6-Bit-PWM gedimmt werden (RGB je 64 Stufen, also 643 = 262.144 Farben!), werden Spannungsgesteuert betrieben. Das klingt erst mal bescheuert, funktioniert aber gut, da LEDs keine so steile Kennlinie haben, wie normale Dioden und einem daher einen Spielraum von >100mV zum Regeln der Spannung lassen. Der große Vorteil ist, dass man nicht die Hälfte der Leistung in den Vorwiderständen der LEDs verheizen muss, sondern mit einem Schaltnetzteil mit hohem Wirkungsgrad genau die nötige Spannung erzeugen kann. Als günstige Spannung für unsere LEDs (bei eGay direkt aus Taiwan bestellt) hat sich 3,2-3,3V erwiesen. Bei dieser Spannung leuchtet die LED gerade zufällig weiß und die Ströme sind auch alle unter 30mA. Ein 100Ω Widerstand an Blau macht das Weiß perfekt. Wichtig ist ein Stück Heißklebestick (2,5cm lang / 11mm dick) das man auf die LEDs steckt als Diffusor, sonst wird nur die Decke angeleuchtet. SchaltungEndlich ist auch die Platine gekommen und die Schaltung läuft... --> Säng! NetzteilDa die LEDs wie oben erwähnt mit Konstantspannung betrieben werden brauche
ich ein Schaltnetzteil, das aus ca. 12V möglichst konstante 3,2-3,3V liefert.
Dazu habe ich mir einen Schaltregler-IC ausgesucht, genauer gesagt den MC34063A.
Und weil der eine etwas ungünstige Endstufe für einen Buck-Converter eingebaut
hat (Darlington NPN) und auch sonst etwas schwach zu sein scheint habe ich ihn
mit einem p-Mos aufgemotzt. PNP würde natürlich auch gehen, da sind eben die
Verluste etwas höher, aber auch nicht tragisch. SteuerungDie Ansteuerung der LEDs geschieht über Schieberegister - woher bekommt man sonst 48 Ports aus dem AVR? Damit das ganze auch flott geht hängen die am SPI und sind in Reihe geschaltet - alle Daten werden also durch alle Schieberegister geschleift bis sie im richtigen Pin sind und dann an die LEDs gelegt. Das passiert mit ca. 8kHz. Zum SPI müssen ca 1,6MBit/s raus kommen, man sieht also, dass es hier zeitkritisch zugeht.
EbenentreiberFür den Zeitmultiplex der 4 Ebenen brauche ich schnelle Schalter, die große
Ströme vertragen. Dabei denke ich sofort an einen IRF540. Weil die RGB-LEDs eine
gemeinsame Anode haben muss dafür die +3,3V-Leitung (hier VSS) geschaltet
werden. Die Logikpegel des AVRs gehen bis 5V, damit stünde nur noch eine
Gate-Source-Spannung von 1,7V für den IRF zur Verfügung, was natürlich zu wenig
ist. Daher hier noch ein Levelshifter (Inverter) davor, damit Ugs auf
0-12V gebracht wird und der Mosfet anständig schaltet und möglichst keine
Spannung an ihm abfällt. Diese Schaltung brauchen wir für jede Ebene, also insgesamt 4 mal. KomplettansichtIn der kompletten Schaltung haben wir noch den Mega32 und ein wenig Kleinkram untergebracht. Anmerkungen
EindrückeJa, der Cube läuft und ja, er ist ULTRA!!
History (die Testschaltung auf dem Breadboard)NachbauSo, da sich mittlerweile wohl doch einige für dieses Projekt interessieren, möchte ich den Weg ebnen, um dieses Projekt nachzubauen... HardwareDie Platine ist mit Target geroutet, es sind allerdings zu viele Pins für die Light-Version. Anschauen und drucken kann man es aber auch ohne die Professional-Version. Download Target Platine: Die Platine ist ein teurer Spaß, da sie sehr groß ist und man normalerweise
keine 10 Stück davon braucht. Bei der Auswahl der LEDs ist zu beachten: Zum Verdrahten ist 0,8mm Silberdraht bestens geeignet. Ich habe davon 2 Rollen (Reichelt) gebraucht. SoftwareDie Software ist zwar noch nicht perfekt, aber macht schon ganz coole Effekte. Daher hier mal eine Beta-Version:
Alles ist in C geschrieben (AVR-GCC) und einigermaßen lesbar. DankeDank geht vor allem an Stefan (Dr. Acid) für die Entwicklung des Tannenbaums. Ohne den Tannenbaum hätte es den Cube vermutlich nie gegeben... |
|
© 2oo7-2oo8 Techtalk All rights reserved. |