Hallo alle zusammen, ich habe schon öfters bei euch im Forum gelesen und einiges mitgenommen. Ein Video im Internet von einem 3x3x3 LED Cube hat mich fasziniert und daraufhin habe ich mich etwas damit beschäftigt. Und ja es gibt hier schon ne Menge zu dem Thema, aber ich habe ein paar Fragen, die glaube ich nicht direkt in die anderen Beiträge passen. Ich möchte mir einen 12x12x12 LED RGB Cube basteln. Ja das ist schon etwas gewagt, zumal ich erst drei Wochen mit Mikrocontrollern bastele. Ziel ist es, dass der Würfel von einem PIC betrieben wird (mehrere wären auch ok). Die LEDs möchte ich gerne mit 7 Helligkeitsstufen und "aus" ansteuern und zwar pro Farbe, also 8x8x8x Farben (512). Die LEDs, die ich bestellt habe sind vom Typ Gemeinsame Anode und diffus und extrahell. Meine ersten Gedanken sind -Alle LEDs übereinander werden die drei Kathoden verbunden (3 Farben 12 LED x 12 LED = 432 Leitungen) -In einer Reihe verbinde ich die Gemeinsamen Anoden (12 Pro Reihe x 12 Pro Ebene = 144 Leitungen) -Multiplexing von den Reihen in jeder Ebene, also statt 144 Leitungen 12+12=24 Leitungen -Alles Multiplexen geht ja wegen der Farben und der zu hohen Ströme nicht. -Shieberegister sollen zu langsam bei der Menge an LEDs sein, wenn ich das richtig aus verschiedenen Projekten interpretiere. -Die LEDs sollen durch Latches angesteuert werden, allerdings ist mir nicht klar, ob ich mit denen auch wie beim Schieberegister ein Software PWM erstellen kann. -Nach den Latches sind in einem Beispiel, bei jemand anderem UDN2981 Source Driver. Die bräuchte ich wohl auch. -Gibt es Latches und die Source Driver auch für 16 BIT( oder vielleicht für 12 Bit), welche eignen sich besonders? Die Latches werden dann je nach Größe, quasi das fehlende Multiplexing ersetzen. Also falls ich ne Menge Schrott geschrieben habe, würde ich mich um Berichtigungen, Anregungen und dergleichen freuen.
:
Verschoben durch Moderator
>Ich möchte mir einen 12x12x12 LED RGB Cube basteln. Du weißt dass du da über 5000 einzelne LEDs hast? >Ziel ist es, dass der Würfel von einem PIC betrieben wird Dann kanns ja nur was werden... >Die LEDs möchte ich gerne mit 7 Helligkeitsstufen und "aus" ansteuern >und zwar pro Farbe Dann lass mal rechnen. 8 Stufen sind 3bit. Das heißt ein Pixel wären 3*3bit=9bit. Runden wir mal auf ein Byte ab. Du hast nun also 12*12*12bytes. Das macht über 1,7kByte. Eine Animation braucht mindestens, sagen wir, 10Frames pro Sekunde (ruckelt dann zwar aber hinnehmbar) und ist bestimmt 5 Sekunden lang. Das macht dann 85kByte für eine Animation. Jetzt guck mal nach, wieviel RAM dein PIC hat. Oder Flash. Allein deswegen kannst du das vergessen. Desweiteren, lass mal was anderes rechnen. 10 Frames pro Sekunde bei 3bit PWM macht 80 PWM Zyklen pro Sekunde. In jedem Zyklus musst du für jede Farbe jeder LED den Wert aus dem RAM laden und mit dem aktuellen Wert vergleichen. Dann musst du ein Bit ausgeben. Rechnen wir also dafür mal 10 Takte. Du wirst sehen dass du VIEL MEHR brauchst, ich will nur zeigen dass es völlig unsinnig ist. Du hast also 5000*10*80*10 Takte pro Sekunde die du brauchst. Das sind dann mal 40 Millionen Takte. Auch bekannt als 40MHz. Nichtmal das wird dein PIC schaffen. Ich weiß außerdem nicht wie dir die Latches groß helfen sollen. Wie setzt man nun sowas um? Ich würde es mal mit Konstantstromquellen-Schieberegister-LED-Treiber ICs versuchen und dann ein ARM Prozessor pro Ebene. 144*3 LEDs kann man noch vernünftig ansteuern. Wobei du beim Multiplexing (12x12) wahrscheinlich auch schon Probleme mit dem Strom kriegst. Da könnte man dann umordnen. Wieso versuchst dus nicht einfach erstmal im kleinen?
Guest schrieb: > Wieso versuchst dus nicht einfach erstmal im kleinen? kann dem absolut beipflichten. außerdem hast du dir mal überlegt, dass bei 12Leds Seitenlänge fast 7000 Lötverbindungen nötig sind? das ganze noch äußerst sorgfältig aufgebaut dass es auch symetrisch wirkt und zum schluss merkste, dass irgendwo bei einer Led in der mitte der draht ab ist. da fluchst du dir dann das kreuz ab. So ein vorhaben in der größenordnung muss hardware- und softwaretechnisch bis aufs kleinste geplant werden. und die planung fängt gewiss nicht mal schnell mit irgendeinem 0815 pic an...
12x12x12 LEDs sind 1728 RGB Leds und ja 6912 Lötstellen. Das Aneinanderlöten muss man sicherlich vorsichtig machen und so oft, wie es geht prüfen, ob alles aneinander ist. Das Ausrichten, dazu Bastel ich mir ne Schablone auf nem Holzbrett( und die wird genau genug, ich bin zwar kein Elektronikspezialist, dafür aber Maschinenbauer;) ). Es muss ja nicht mit einem PIC funktionieren, man kann ja auch beispielsweise 13 Pics nehmen und dann jeweils eine Spalte mit 12x12 Leds ansteuern und dann einen Pic, der das Signal aufspaltet. Und eine Beschreibung für einen 8x8x8 Cube RGB mit einem Mikroprozessor gibt es ja bei Stefan Weigerts Homepage schon. Ich will nur den PIC, weil ich damit angefangen habe und mir eine Testplatine gebaut habe, auf der mein einfarbiger 3x3x3 Led Cube auch bestens läuft;)
Marc S. schrieb: > ja nicht mit einem PIC funktionieren, man kann ja auch beispielsweise 13 > Pics nehmen und dann jeweils eine Spalte mit 12x12 Leds ansteuern und > dann einen Pic, der das Signal aufspaltet. Wenn schon, dann ist eine halbwegs vernünftige Aufteilung: 8 Teilcubes zu machen, von denen jeder 6*6*6 groß ist. Aber selbst dann wird es mit dem Timing eng, wenn du auch noch Helligkeitssteuerung machen willst.
:
Wiederhergestellt durch User
> -Multiplexing von den Reihen in jeder Ebene, also statt 144 Leitungen > 12+12=24 Leitungen Hast du im Datenblatt nachgeguckt und nachgerechnet, ob deine LED wirklich 1:12 Multiplex aushalten, oder träumst du bloss ? Gerade blaue LEDs sind selten davon erbaut. > -Shieberegister sollen zu langsam bei der Menge an LEDs sein, wenn ich > das richtig aus verschiedenen Projekten interpretiere. Also Schieberegister mit Sch können das und sind nicht das Problem der Schaltung, man betreibt mehrere (z.B. 8) parallel damit man byteweise die Daten ausgeben kann. Dann ist das fast ähnlich zu programmieren wie Latches, nur spart man sich den Adressdecoder. > -Nach den Latches sind in einem Beispiel, bei jemand anderem UDN2981 > Source Driver. Die bräuchte ich wohl auch. Ich glaube, du unterschätzt die nötigen Ströme ganz gewaltig. Nehmen wir mal an, die blauen LEDs halten 100mA aus und sind dabei 5 mal so hell wie bei 20mA, und man verwendet 1:5 Multiplex, dann braucht RGB 5 Spalten, und 1037 Zeilen z.B. durch 130 TPIC6B595. Die 104 Ampere schafft kein UDN2981. Lange nicht. Man verwendet MOSFETs die jeweils nur 1/3 der LEDs, also 35A, schalten, also parallel am Netzteil und parallel angesteuert aber nicht mehr am Drain parallel zusammengefasst sondern jeder bedient seinen Teil der LEDs. Und ein 105A Netzteil braucht man auch. Wenn man 50 Bilder/Sekunde darstellen will, muß man pro Bild 5184 bits rausschieben, oder 216 24 bit Worte. Das schafft ein 16MHz AVR in 20us, wenn die Daten vorbereitet im RAM liegen (dafür ist den meisten AVR das RAM zu klein), also in 1/1000 der Zeit die er dafür hätte, so daß er das problemlos 3 mal für 8 Helligkeitsufen per PWM machen kann, vorausgesetzt man kann ordentlich Assembler programmieren und quält sich nicht mit BASCOM. Die Frage ist, wie viel Rechenzeit man braucht, um diese Daten erst mal passend strukturiert ins RAM zu bekommen. Wenn man dazu nebenbei einen MPEG-Video dekomprimieren muß, wird's eng. Rein algorithmisch hat ein 16 MHz AVR aber gut 97% seiner Rechenleistung noch übrig.
> Das schafft ein 16MHz AVR in 200us, Da fehlt eine 0 wenn die Daten vorbereitet im RAM liegen (dafür ist den meisten AVR das RAM zu klein), also in 1/100 der Zeit die er dafür hätte, so daß er das problemlos 3 mal für 8 Helligkeitsufen per PWM machen kann, vorausgesetzt man kann ordentlich Assembler programmieren und quält sich nicht mit BASCOM. Die Frage ist, wie viel Rechenzeit man braucht, um diese Daten erst mal passend strukturiert ins RAM zu bekommen. Wenn man dazu nebenbei einen MPEG-Video dekomprimieren muß, wird's eng. Rein algorithmisch hat ein 16 MHz AVR aber gut 70% seiner Rechenleistung noch übrig.
also ich warte erstmal bis die LEDs da sind, bestellen im Ausland geht ja nicht immer gut. Die hab ich bestellt http://ledz.com/led.datasheet/599R2GBC-CA.pdf Wenn ich alles in Reihen und Spalten aufteile (keine ganzen Ebenen), dann muss ich doch nur 12 mal multiplexen, das sollte doch klappen, dann hab ich bei 120 mA ja 10 mA, das sollte doch für einigermaßen starkes Leuchten reichen oder?
Marc S. schrieb: > Wenn ich alles in Reihen und Spalten aufteile (keine ganzen Ebenen), > dann muss ich doch nur 12 mal multiplexen, das sollte doch klappen, egal, ob du irgendwas zeilenweise, spaltenweise, oder kreuz und quer multiplext: Sofern du eine LED mit einer gewissen Helligkeit haben willst, mußt du eine bestimmte Strommenge da durchjagen. bei 10 mA pro Farbe bei "maximal-Beleuchtung": (12 x 12 x 12) x 3 x 10 mA = 50 A muß dein Netzteil mindestens liefern können Daß deine Treiber bei einem "ungeeigneten" Multiplex ein Vielfaches als Spitzenstrom abkönnen müssen, ist halt noch was anderes .... > dann hab ich bei 120 mA ja 10 mA, das sollte doch für einigermaßen > starkes Leuchten reichen oder? Das von dir gepostete Datenblatt meint dazu (reweils R-G-B) IF Average Forward Current Per Chip 30 30 30 mA IPF Peak Forward Current Per Chip (Duty=0.1,1KHZ) 60 120 70 mA Das Diagramm mit forward current / forward voltage zeigt bei 10 mA noch nicht sehr vielversprechend aus was die Lichtausbeute angeht. Mußt du dir halt als Folgeprojekt noch einen Restlichtverstärker bauen, damit du was am Cube erkennen kannst
Ich hab mir bei Stefan Weigerts Homepage die Baubeschreibung für den 8x8x8 Würfel angeschaut, er hat ebenso diffuse LEDs, es mag sein, dass sich die Werte von meinen Leds unterscheiden, aber vielleicht auch nicht. Er hat seine 16fach multigeplext. Angeblich ist das hell genug. Der Strom würde sich dann von 50 auf 34 Ampere senken. Er beschreibt, dass grün so hell ist, dass der Strom dort nochmals um 80 % gesenkt wird. Alles in allem hat er einen Verbrauch von 6,6 A für 512 Leds berechnet, hochgerechnet wären das bei mir dann 22,75A, nicht wenig aber schon eher machbar. Das Farbempfinden ist ja nicht ganz linear;) Werde dann, sobald die Leds da sind, einfach mal 16 Stück zusammeln basteln und dann mal die Helligkeit beim Multiplexing testen. Probieren geht über studieren;)
Konntest du einen Rabatt rausschlagen? ich komme da auf ~950€... PS: Neben den ganzen anderen Problemen (Stromaufnahme, Verkabelung) ist das zwar so gerade noch machbar, jedoch wirst du über den µC oder ggf. deren Kaskadierung nochmal nachdenken müssen... Das Hauptproblem ist hier nicht umbedingt a) die Rechenzeit zum ausgeben, oder b) die Speicherfrage oder c) die Synchonität sondern soziemlich alles 3 gleichzeitig. Ich würde hier gleich mit einem FPGA und dediziertem Speicher ran gehen (zum Vergleich: in der Monovariante hast du schon das 64 fache (!!!) an allem, was du für deinen 3³ er brauchtest - dann kommen noch 3 Farben dazu... ). PS: Falls man mal einen Programmierfehler hat in dem er wärend des Multiplexens in der Highphase hängen bleibt sind gehen deine 950€ in einem Wunderschönen Licht auf und sterben kreischend den thermalen Tod ;-)
Naja bei Programmierfehler hatte ich mir gedacht, ich nehme erstmal größere Widerstände teste und wenn was nicht passt, müsste ich das hoffentlich erkennen. Wenn alles gut aussieht kommen die richtigen Widerstände rein. Und nein 950 Euro hab ich nicht gezahlt, 300 Euro, war ein Restposten bei Ebay, hatte erst ein paar bestellt, weil schreiben kann man viel und ob es dann auch die entsprechenden Leds sind, weiß man nicht, wenn der Preis recht günstig ist. Die ersten kamen und die waren schon ganz schön vom Abstrahlwinkel und Licht geben sie auch noch ab. Da hab ich dann die restlichen auch noch bestellt und bei 1750 ergibt sich zwangsläufig 12x12x12 ;) Vielleicht ist es auch einfach zu kompliziert gedacht, dann nimmt man einfach mehrere Mikroprozessoren, quasi einen für 12x12, der muss ja nicht einmal 12 fach geplext sein, man kann den auch so verbinden, das er 8 mal geplext wird. Den Strom spaltet man dann auch einfach auf in ein paar kleine Transformatoren nebeneinander, die dann jeweils nur für 12x12 zuständig sind. Und einen Mikroprozessor, der quasi ein Bild mit den Infos einließt dann aufspaltet und an die einzelnen Prozessoren ausgibt. Kann mir gar nicht vorstellen, dass das so kompliziert ist... Fast ein kleines Fraktal;)
> dann hab ich bei 120 mA ja 10 mA, das sollte doch für > einigermaßen starkes Leuchten reichen oder? Also ich lese 60mA, aber du scheinst lieber selektiv nur das in einem Datenblatt wahrzunehmen, was dir gefällt. 1:6 Multiplex für halbe Helligkeit oder 1:3 Multiplex für volle Helligkeit.
> dann hab ich bei 120 mA das ist dann ja auch ziemlich ... ärgerlich wenn man sich "mitten drin" im 12 x 12 x 12 Cube irgendeine LED zerschossen hat, und die nur noch "Glühwürmchen-Leistung" hat oder gar nicht mehr leuchtet aufgrund von Überlastung
Hi. Der letzte Post ist zwar nen paar Jährchen her aber mich würde mal interessieren ob das Projekt letztendlich geglückt ist? :-D
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.