Archiv verlassen und diese Seite im Standarddesign anzeigen : 5^3 RGB-LED-Cube
John Locke
23.03.2009, 22:18
Hallo zusammen!
Erstmal muss ich sagen: super Forum, hier findet man wirklich fast alles! :)
Viele von euch kennen bestimmt diese LED-Würfel - auf youtube findet man einiges,
wie z.B. http://www.youtube.com/watch?v=4MGKhFIujM4
Ich weiß, sowas nachzubauen ist nicht besonders kreativ - aber trotzem bin ich davon begeistert und will nun auch so ein Teil haben! :D
125 RGB-LEDs sind noch grade im finanziellen Rahmen, also hab ich vor, genau so einen wie im Video zu basteln. Die haben das da scheinbar mit einem FPGA realisiert, aber das muss doch auch einfacher gehen. Ich hätte zumindest noch einen ATmega32 übrig. Da jede LED ja praktisch aus 3 besteht, hab ich mir überlegt, es als 25x15-Matrix anzusteuern. (5x5x5x3)
Nun hat der AVR natürlich nicht so viele Ports. Da ich keine Schieberigster nehmen möchte (weil ich nicht weiß ob die schnell genug sind, wenn ich noch was mit PWM machen will) hatte ich die Idee, einfach ein paar UDN2981 parallel zu schalten und dann diese jeweils über einen Transistor an VS an- und auszuschalten.
http://img4.imageshack.us/img4/5402/ledcubes.th.png (http://img4.imageshack.us/img4/5402/ledcubes.png)
Nun die Frage: ist das so möglich wie ich es mir vorstelle?
Freu mich auf eure Antworten! ;)
MfG
Dafür ist ein Mega32 mit Schieberegister definitiv zu langsam - dort wird nicht umsonnst ein FPGA eingesetzt.
Ohne PWM (also nur an/aus von den einzelnen Farben) würde wahrscheinlich gehen - will mich aber nicht festlegen!
Wenn du unbedingt einen Cube haben willst würd ich erst mal mit einfarbigen LEDs und ohne PWM anfangen - um mal in die ganze Materie mit Multiplexen &Co. reinzukommen. Dann kannst du später immer noch PWM betreiben!
MFG Mixxer
John Locke
24.03.2009, 20:30
Deshalb hab ich ja extra geschrieben, dass ich keine Schieberegister nehmen will. Ich habe letztens ein 2D-LED-Display gebaut mit Laufschrift und so (auch ohne Schieberegister) und so ein Cube ist ja nichts anderes als ein paar davon übereinander. Also ich denke das müsste problemlos gehen.
Meine Frage war eigentlich nur: ist es möglich, alle Ausgänge eines UDN2981 auf low zu schalten wenn ich ihn von 5V trenne? Klingt doch logisch oder?
Besserwessi
24.03.2009, 23:32
Schieberegister müssen nicht mal zu langsam sein. Selbst mit PWM könnte das noch gehen (allerdings mit eher wenig Stufen). Über das SPI interfache sind Schieberegister recht schnell und fast ohne Rechenzeit. Software PWM kann man in ASM auch überraschen schnell kreigen. Das sollte für 8 bit PWM noch reichen. Schon für weniger Störungen sollte man ja LED und Phase des Multiplexens ohnehin nur einen einzigen Puls variabler Länge haben.
Für eine 25x15 Matrix direkt fehlen einem ein paar Portpins. Von den 15 Leitungen ist immer nur genau eine aktiv. Das könnte man durch Logic ICs (ggf. sogar nur ein großes) lösen (z.B. 2 mal 74HC138+ 1 inverter ).
Dann käme man mit 25+4 Leitungen aus. So viele Pins sollte man freihaben. Die Lösung die UDN2981 über Vs zu schalten ist etwas kritisch, könnte aber eventuell auch gehen.
Es könnte sein das die UDN2981 nicht genug Strom liefern um 25 LEDs gleichzeitig zu treiben. Vor allem weil die LEDs ja 1:15 gemultiplexed sind, und eventuell mehr als 20 mA brauchen. Es kann reichen, wenn man sparsame LEDs findet.
John Locke
25.03.2009, 02:53
Das mit den Demultiplexern ist auch eine interessante Idee.
Es kommt halt darauf an, wie ich multiplexe: ob ich nacheinader die 15 Zeilen ("Ebenen") durchgehe und jeweils (bis zu) 25 LEDs einschalte, oder umgekehrt die 25 Spalten ("Säulen") durchgehe und jeweils (bis zu) 15 LEDs einschalte. Im letzteren Fall leuchten zwar weniger LEDs gleichzeitig, aber dafür auch mit einem Verhältnis von 1:25, wodurch man vermutlich wieder genauso viel Strom braucht.
Hinzu kommt aber noch ein Punkt, warum ich glaube, dass eigentlich nur der zweite Fall Sinn macht. Die 3 LEDs einer RGB-LED haben 1 gemeinsame Anode (bzw. Kathode) aber dennoch verscheidene Durchlassspannungen - man braucht also pro RGB-LED nicht 1 sondern 3 Widerstände an den Kathoden (bzw. Anoden). Korrigiert mich bitte, wenn dem nicht so ist - dann erübrigt sich das Folgende.
Nun brauche ich natürlich nicht 375 Widerstände sondern nur so viele, wie gleichzeitig LEDs an sind. Wenn ich zum Multiplexen nacheinander die 25 Spalten durchge, brauche ich 15 Widerstände, für jede Zeile einen. Aber mechanisch sind es ja nur 5 Eben mit je 3 Farben. Anders herum geht das aber nicht, denn 25 / 3 geht nicht auf.
Ist ein bischen schwierig zu erklären, vielleicht hilft ein Blick in meine Schaltung oben. Bei der Schaltung wie sie so ist würde ich nicht so multiplexen wie Besserwessi meinte, denn dann würden ja immer 25 LEDs über 1 Widerstand laufen.
So oder so - man braucht einen Treiber der ein paar mA aushält. Der UDN2981 und ULN2803 schaffen 500mA, richtig? Aber heißt das insgesamt oder pro Pin? Aus den Datenblättern bin ich nicht schlauer geworden.
Besserwessi
25.03.2009, 20:37
Bei den Treibern gibt es eine Limit für jeden Ausgang, und eines für das Ganze IC. Etwas vereinfacht gibt das für den UDN298x:
500mA für eine Pin kurzzeitig
350mA für eine Pin auf Dauer
ca. 800mA - 1 A für alle Ausgänge zusammen auf dauer.
Das sind nur rund 100 mA je Ausgang !
Gerade wenn man die LEDs nur jeweils kurz an hat, wird das zu wenig für 15 oder gar 25 LEDs. Das wäre mehr passend für eine der 15 oder 25 die gleichzeitig an sind.
Die UDN298x sind ohnehin eher unpraktisch wegen dem hohen Spannungsabfall von fast 2 V und dem eher hohen Ausgangswiderstand.
Das Problem mit der Aufteilung stimmt. Das wird schwierig die LEDs so anzusteueren, das jeweils 25 gleichzeitig leuchten können. Die Aufteilung andersherum ist von den Widerständen einfacher, aber für die Treiber wird es etwas kompizierter, denn man braucht dann 25 starke Treiber (ca. 300-600 mA) und 15 kleine für 20-40 mA.
Wie viel Strom man braicht hängt aber sehr stark von den LEDs und der gewünschten Helligkeit ab. Da kann schon man ein Faktor 1000 dazwischen liegen von guten LEDs im Dunkeln oder schlechten LEDs im Hellen.
John Locke
25.03.2009, 23:28
Danke für die guten Antworten, Besserwessi.
Wenn ich ich immer 15 LEDs über einen Pin der UDN2981 schalte und die anderen sind aus müsste das aber doch gehen oder? Was wäre denn eine Alternative... viele Transistoren? z.B. BC636?
Ich wollte diese LEDs nehmen...
http://cgi.ebay.de/50pcs-Diffused-5mm-4-Pin-Common-Anode-RGB-LED-8-000mcd_W0QQitemZ260382559374QQcmdZViewItemQQptZBau teile?hash=item260382559374&_trksid=p3286.c0.m14&_trkparms=72%3A1229%7C66%3A4%7C65%3A12%7C39%3A1%7C 240%3A1318
steht nicht viel dabei, aber dafür sind sie schön billig :D
Sorry, bin leider kein E-Techniker, bloß Informatiker ;)
Besserwessi
26.03.2009, 21:44
Eine der ersten Dinge die man klären müßte, wäre wieviel Strom man pro LED braucht bzw. erlauben will. Die LEDs aus dem Linke sehen ziehmlich hell aus, bzw. man kann sie auch mit wenig Strom betreiben.
Für die kleinen Ströme (ca. 20 mA) kann man als Treiber z.B. die ULN2003 oder auch TTL Busteiber wie 74ALS244 / 74AHC244 oder ähnliches nehemn.
Für die großen Ströme (gegen Vcc) könnte man die P-Transistoren nehmen. Was viel passenderes fält mir da auch nicht ein.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.