PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 300 LED Lauflicht



Koksnuss
23.10.2007, 15:35
hallo zusammen,

ich habe vor mir ein lauflicht, mit 300 rgb leds zu basteln.
meine frage ist, was für möglichkeiten ich habe das zu realisieren, da ich im moment am abwägen bin, was am sinnvollsten ist.
die 300 leds sind auf 5 meter verteilt, also keineswegs nah beisammen.
bis jetzt habe ich von der multiplex technik gehört, bei der ich dann alle 300 rgb-pole (also eigentlich 900) der leds mit 3 pins meines chips "verbinde". Die übrigen 300 kathoden der leds müsste ich dann wohl oder übel mit 300 weiteren pins verbinden :-| wenn das nicht simmt, bitte berichtigt mich, jedoch bräuchte ich, wenn das stimmt sehr viele kabel und einen großen bzw. viele kleine chips.
Was ich natürlich auch machen kann ist, mehrere leds über eine kathode laufen zu lassen, jedoch sollten es nicht zuviele sein, da es ja eigentlich ein lauflicht werden soll :-|

Koksnuss

Lemonsquash
23.10.2007, 16:32
Also, soweit ich weiß, haben diese RGB-Leds 4 "beinchen"

3 für die Farbe und eine gemeinsam Masse. Die Masse kannst du immer über
einen Leiter laufen lassen (z.B. ein gemeinsames Massekabel). Bleiben bei
300 Leds also noch 900 beinchen übrig (für die farben). Wenn du sagst,
du verfügst über eine Möglichkeit per Multiplexing 900 Anschlüsse zu steuern,
sollte das doch kein Problem mehr sein.

Oder habe ich da was falsch verstanden?

schnasemann
23.10.2007, 16:36
schreibe genauer, was Du machen willst.
Mit Charlieplexing (google) kann man n*(n-1) LEDs ansteuern, braucht bei 900 Stück also 31 Portpins.
Wenn das allerdings dann noch gedimmt werden soll, wirds kritisch.
Andere Möglichkeit wäre kaskadieren mit Scheiberegistern als Matrix.

Schreibe etwas genauer, dann kann man besser helfen.
Carsten

NanoTom
23.10.2007, 17:12
Hallo Koksnuss,

es gibt hier noch ein paar andere Threads mit verwandten Fragestellungen, aktuell z.B.:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=34755 (RGB-LED-Cube)
https://www.roboternetz.de/phpBB2/viewtopic.php?t=34927 (LED-Steuerung für 6 x 150 LEDs)

In Deinem Fall würde ich zunächst mal erörtern, wo denn Vereinfachungen gemacht werden können.

Bei Lauflichtern ist es ja üblicherweise so, dass sich das Muster in gewissen Abständen wiederholt. Das könntest Du natürlich nutzen.

Dann wäre etwa noch die Frage, ob bzw. wie weit die darstellbaren Farben voneinander unabhängig sein sollen und ob Du ein kontinuierliches Farb-/Helligkeitsspektrum brauchst.

Gruß,
Tom

Koksnuss
23.10.2007, 19:54
Ok, ersteinmal vielen Danke, für die schnellen Guten Antworten!


Also, soweit ich weiß, haben diese RGB-Leds 4 "beinchen"
Daran habe ich nicht gezweifelt.


Mit Charlieplexing (google) kann man n*(n-1) LEDs ansteuern
Mit Charlieplexing habe ich mich auf dien anraten auseinandergesetzt und verstehe so in etwa wie es funktioniert.


...braucht bei 900 Stück also 31 Portpins.
das verstehe ich nicht ganz. Gut, wenn ich für n die 31 Pins in die Formel einsetze komme ich auf 900. Aber das heißt doch, ich muss jeweils 4 pinns des chips mit 4 rgbs verbinden (da jede rgb insgesamt 4 beinchen besitzt). und dann wieder die nächsten 4 pins mit 4 rgbs verbinden, oder? :-|


Wenn das allerdings dann noch gedimmt werden soll, wirds kritisch.
Das hatte ich eigentlich gehofft, ich hatte bisher die idee einfach zwischen Chip und LEDs ein Drehwiederstand zu schalten, der dann manuell die helligkeit beeinflusst. Kann man das ganze auch in einen Chip integrieren, sodass ich ein Programm schreibe, das bestimmte LEDs dimmt, aber gleichzeitig nicht auf die 300 LEDs verzichtet?


Andere Möglichkeit wäre kaskadieren mit Scheiberegistern als Matrix.
Das ist mir komplett neu, habe bis jetzt noch nichts für mich verständliches gefunden.

Zu NanoTom:
Vielen Dank erst einmal für de 2 Links (tolle Anregungen!).
Was ich genau will ist letztenendes ein Lauflicht, das ich über pc steuern kann, aber nicht muss, welches mehrere Programme intus hat, die ich wählen kann, wie zum beislpiel blinken, lauflicht, farbewechseln, runterdimmen, dimmen + farbwechsel usw...

Ich hoffe, es ist nun etwas klarer, nicht nur für mich, sondern auch für euch!

Koksnuss

schnasemann
23.10.2007, 21:15
das verstehe ich nicht ganz. Gut, wenn ich für n die 31 Pins in die Formel einsetze komme ich auf 900. Aber das heißt doch, ich muss jeweils 4 pinns des chips mit 4 rgbs verbinden (da jede rgb insgesamt 4 beinchen besitzt). und dann wieder die nächsten 4 pins mit 4 rgbs verbinden, oder? :-|


Hallo, Koksnuss. Das mit dem Charlieplexing ist wirklich trickreich. Ich versuche es einmal zu erklären. Stelle Dir vor, Du hast einen Schalter mit 3 Positionen. Den kannst Du nun in der Mitte frei lassen, oben an 5 Volt und unten an Masse anschließen. Das nochmal und schon kannst Du damit n*n-1 =2*1=2 Leds ansteuern. Nämlich, indem Du den "linken" Schalter an 5V und den "rechten" an Masse schaltest und dazwischen eine LED hast (Widerstand lassen wir der Einfachheit halber mal weg).. Wenn dazu antiparallel (andersrum) eine LED liegt, kann man diese wiederum einschalten, wenn man links nach unten und rechts nach oben schaltet.
Moderne Mikrocontroller können eben dieses Schalten. Das nennt man Tri-State, also drei Zustände. Entweder können sie mit Spannung versorgen (sourcen) oder Strom ziehen (sinken) oder eben hochohmig sein (ds ist bei Deinem "Schalter" die Mittelstellung.
Hoffentlich einigermaßen verständlich.

Wenn man das nun ausreizt, kann man relativ einfach recht viele LEDs einzeln ansteuern. Und wenn man das wiederum recht schnell macht (mehr als 25x in der Sekunde), kann man eben auch stehende Bilder erzeugen (z.B. einen Sternenhimmel, bei dem immer wieder nur ein Stern an oder ausgeht).

Matrix mit Schieberegistern denkt anders.
Man macht ein Gitter aus Leitungen, die man senkrecht und waagrecht legt. Nun kann man statt der Kreuzpunkte jeweils eine LED setzen. Um Ausgänge zu sparen, schiebt man nun sein Muster nacheinander ganz schnell in ein Schieberegister, welches dann z.B. die 8 nacheinander reingeschobenen Zustände gleichzeitig an 8 Ausgängen anbietet.

Maxim stellt div. LED-Treiber her, die 16 stufiges Dimmen und Ansteuern von recht großen Matrixen kann. Vielleicht da einfach auch mal vorbeigooglen.

HTH
Carsten

Koksnuss
23.10.2007, 22:16
Hallo, Koksnuss. Das mit dem Charlieplexing ist wirklich trickreich. Ich versuche es einmal zu erklären. Stelle Dir vor, Du hast einen Schalter mit 3 Positionen. Den kannst Du nun in der Mitte frei lassen, oben an 5 Volt und unten an Masse anschließen. Das nochmal und schon kannst Du damit n*n-1 =2*1=2 Leds ansteuern. Nämlich, indem Du den "linken" Schalter an 5V und den "rechten" an Masse schaltest und dazwischen eine LED hast (Widerstand lassen wir der Einfachheit halber mal weg).. Wenn dazu antiparallel (andersrum) eine LED liegt, kann man diese wiederum einschalten, wenn man links nach unten und rechts nach oben schaltet.
Moderne Mikrocontroller können eben dieses Schalten. Das nennt man Tri-State, also drei Zustände. Entweder können sie mit Spannung versorgen (sourcen) oder Strom ziehen (sinken) oder eben hochohmig sein (ds ist bei Deinem "Schalter" die Mittelstellung.
Hoffentlich einigermaßen verständlich.
Also ich sehe das jetzt so.ich habe jeweils 10 LEDs, bei denen ich die Masse verbinde und die 10 rgb Kanäle auf 30 verschiedenen Leitungen laufen lasse. Diesen "Block" von jeweils 10 LEDs wiederhole ich genau 30 mal, nur dass die Masse der anderen immer auf einem anderen Kanal sitzt. Folglich brauche ich 31 Pins am chip. Stimmt das?
Zu den IC von MAXIM, mit denen ich die LEDs dimmen könnte, ich habe mir mal einen rausgesucht und ich denke ich hab auch ein elösung für das Problem den Chip mit meinem charpliplexing zu verbinden:
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/5286/t/al

schnasemann
24.10.2007, 07:59
@Koksnuss: Stimmt grob.
Schau Dir doch mal die MAX6953 und MAX7219 an. Meiner Meinung nach interessant für Dich.
Grüße,
Carsten

Koksnuss
24.10.2007, 15:57
@Koksnuss: Stimmt grob.
Was hab ich falsch gemacht?

Zu den ICs von Maxim, soweit ich das richtig gelesen habe, rufen die CHIPs den dimmeffekt dadurch hervor, dass sie die LEDs in einem bestimmten takt flakkern lassen, könnte ich nicht auf den Maxim chip verzicheten und mein charlieplexing dann mit einem variablen takt versehen? Also je schneller ich die LEDs Takte, desto dunkler werden sie, wenn ich das richtig verstanden habe. Oder gibt es einen Chip mit Analogem In bzw Output, wo ich die Spannung regulieren kann?

schnasemann
24.10.2007, 17:02
Hast nix falsch gemacht, ich hab Deine Erklärung nur erst nach dem 2. Mal lesen kapiert 8-[

Wenn Du das Dimmen selber machen willst, musst Du Dein Charlieplexing trotzdem mit dem schnellstmöglichen Takt machen (damit man nicht eine LED nach der anderen an und ausgehen sieht), aber eben in weniger Zyklen die LED ansteuern. Das kommt nun auch drauf an, ob Du nur einzelne oder alle LEDs dimmen willst. Alle ist deutlich einfacher, sonst musst Du zu jeder LED auch softwaremäßig einen Helligkeitswert mitführen, das wird etwas Programmiererei.

Koksnuss
24.10.2007, 18:01
Ok, vielen Dank für die Info!
Weisst du vll in welchem Frequenzbereich ich die LEDs takten muss um sie zu dimmen?

schnasemann
24.10.2007, 20:15
lässt sich alles recht einfach rechnen. Sagen wir, Du brauchst 300 LEDs nacheinander mit mindestens 25Hz pro LED. Macht 300x25Hz, sind 7.5kHz. Dann noch eine Abstufung von 100 Stufen, sind 750kHz. Und schon isses knapp. Die 7.5kHz sollte man noch packen können, aber da gehen Dir bei den kleinen Prozessoren die Beinchen aus. Wobei man das ohne großen Zeitverlust mit Matrix oder Schieberegister wieder hinbekommen könnte.

Überlege einfach mal genauer, was Du haben willst und wir überlegen, wie man das hinbekommt. Andersrum isses komplizierter, zu sagen, was kann ich denn alles machen.

Koksnuss
24.10.2007, 20:42
Also ich will letztenendes 300 LEDs haben, die ich einzeln ansteuern kann und wenn möglich beliebig dimmen.
Was ich nicht ganz verstehe, ist deine Rechung. Wenn ich jeweils 10 LEDs zu einem "10-LED-Block" zusammen fasse und insgesamt 10 Blöcke habe, dann muss jeder Block mindestens 25 mal in der Sekunde angesteuert werden. Also 25Hz pro Block. Da ich aber 10 Blöcke besitze muss ich die 25Hz * 10 nehmen und komme auf 250 Hz.
Dann habe ich die Frequenz, mit der ich die LED-Blöcke Takten müsste, um ein flakkerfreies "Bild" zu bekommen.
Um sie dann zu dimmen muss ich die Frequenz noch weiter erhöhen.
Ich bin mir nicht sicher, ob ich deine Rechnung falsch verstenden habe, aber ich steuere ja nicht alle 300 LEDs hintereinenader an, sondern immer 10 auf einmal.

schnasemann
24.10.2007, 21:49
ja, Du verstehst meine Rechnung falsch. Weil Du nicht 10 LEDs gleichzeitig ansteuern kannst. Sonst macht Dir der Portpin wegen dem zu hohen Strom die Grätsche.
Du musst nicht nur auf der einen Seite 10x Strom ziehen können, sondern gleichzeitig auch auf der anderen Seite 10x sourcen. Das geht nicht. Pro Port maximal 100mA und pro Portpin max. 20mA. Also einer nach dem andern.

schnasemann
26.10.2007, 08:01
der 6953 kann 140 LEDs treiben. Davon 2, die lassen sich per I²C ansteuern, das sind 2 Drähte bei bis zu 8 gleichen Bausteinen. Was will man mehr? 16 Stufen Helligkeitseinstellung. Wobei das LED-Muster dann als Zeichen definiert sein muss, weil das eigentlich ein 4x 5x7-Dot-Matrix-Treiber ist.
Ansonsten bleibt noch die Schieberegistergeschichte. Da lege ich Dir mal
http://st23.de/littlelights/hardware.htm
ans Herz. Ich möchte Dich nicht ausbremsen, aber schau Dich erst mal noch eine Weile um und informiere Dich, dann kommt man immer mehr auf verrückte Ideen und zum Schluss weiß man, was man machen will.
HTH
Carsten

schnasemann
26.10.2007, 20:08
Sorry, Du hast natürlich recht.
Was ich mir in den letzten Tagen mal angeschaut habe, sind die Projekte um Blinkenled und Blinkenlight. Google Dich da mal durch. Bei soviel LEDs wäre es vllt. clever, wenn man sich an einen quasi-Ansteuerstandard halten würde. Was man auch anschauen sollte, ist ARCADEmini.
Sei gegrüßt,
Carsten

schnasemann
02.11.2007, 20:11
So, nachdem ich meinen eigenen geschriebenen Stuss der letzten Tage nochmal gelesen habe, kann ich eigentlich der Einfachheit halber nur folgendes vorschlagen.
Bau eine kleine Platine mit 3 Schieberegistern, 8 RGB-Leds und verkabel das Ganze mit den passenden Widerständen. Den ganzen Krusch kannst Du dann einfach aneinanderhängen und brauchst nur am Anfang Dein Lauflichtmuster reinzuschieben und fertig isses. So kannst Du:
rot, grün, blau, gelb, cyan, magenta, weiss, schwarz O:) mischen.
Wenn Du weitere Hilfe brauchst, melde Dich noch mal. Meiner Ansicht nach sollte ein einfaches Schieberegister 74HC595, 74HCT595, 74SN595, 74AC595... mit einem nachgeschalteten Treiber (ULN 2803) voll und ganz ausreichen.
Carsten

Besserwessi
17.11.2007, 20:53
Das mit dem Charliepixeling gibt Probleme, wenn rote und blaue LEDs gemischt werden, denn die Spannung der blauen LED kann mehr als 2 mal so hoch werden, wie die der roten. Für sehr viele LEDs ist das Verfahren ohnehin ungeeignet.
Alle 300 RGB LEDs von einem Controller zu Steuern wird schon desshalb schwierig weil dafür schon 900 Bytes an RAM gebraucht wird (8 Bit helligkeiten) und die Rechenzeit wohl nicht ausreicht.
Für den thread mit dem Led Cube habe ich für einen AVR Controller eine recht gut optimierte Assemblerroutine für software PWM geschrieben. Dabei komme ich auf rund 6 Taktzyklen je Kanal und PWM Schritt. Dass heißt bei 100 LEDs, 8 Bit PWM und 25 Hz Wiederholrate bräuchte man mindestens 6x100x256x25 Hz = 3,84 MHz Taktfrequenz für den Prozessor. Mehr als 500 LEDs wird man also bei 20 MHz nicht schaffen und dann wird auch schon das RAM knapp. Man sollte das ganz in kleinere Gruppen von z.B. 64 oder 100 RGB LEDs aufteilen, die dann unabhängig voneinander mit eigener Steuerung lauften. Vor allem kann man dann schon man einen kleineren Teil testen und dann ggf. 3 bis 5 mal gleich aufbauen.