Große Led Displays ansteuern ??

Hallo nach meinem noch nicht ganz gelösten RF Problem gleich das nächste:

Wir wollen eine große LED Matrix steuern, min.364 hochleistungs Leds. Sie müssen nicht dimmbar sein und RGB brauchen wir auch nicht.
Wir haben eine Porcessing Videoumrechnung geschrieben, die den Video Stream in die gewünschte Auflösung umrechnet und als Variablen ausgibt.

Nachdem aufgrund der hohen Led Anzahl die Brut-Force Methode, eine Led pro Pin ausscheidet, haben wir uns mal umgesehen und sind auf eine unübersehbare Anzahl von mehr oder weniger sinnvollen Möglichkeiten des Multplexing gestoßen.

Die Fragen sind nun:

  • welche Demux/Led Driver Chips sind sinnvoll und zu großen Clustern kombinierbar (Daisy Chain) ?

  • wie muss der Datenstrom aussehen damit die einzelnen Demux wissen welche für wen sind?

  • welche Strategie ist sinnvoll, Charlieplexing, Demux/Led Driver, mehrer Arduinos als Verteiler hintereinander, Serielle Kommunikation oder SPI ?

Hat jemand eine Idee wie wir die Sache am besten angehen?

Danke von den (scheinbar) beiden einzigen Arduino Fans in Darmstadt....

Es gibt unendlich viele Möglichkeiten befürchte ich. Ihr wollt die Sache selbst anpacken und eigene Hardware entwerfen? über 360 LEDs?

Kannst Du die Matrix mal was genauer beschreiben? 19x19 LEDs oder sowas?
Welche Sorte LED hattet ihr im Auge? Gibt ja 20mA LEDs und dann noch diese Luxeon Sachen mit 350mA oder sogar um 1A pro LED.

Und ihr wollt sicher jede LED einzeln ansteuern können, oder reicht es wenn ihr sie zeilenweise ansprechen könnt?

Ich würde fertige smart LEDs kaufen. Da fallen mir konkret die BlinkM ein, oder auch die ShiftBright.
BlinkM benutzt I2C Bus, ist evtl. limitiert auf 127 Knoten.

ShiftBright nutzt ein gelatchtes Shift Register oder sowas. Auf jeden Fall kann man jede LED einzeln ansteuern, muss aber die gesammte Kette updaten.

Und dann gibt es natürlich noch LumiNet hust. Das ist eine sehr helle RGB LED mit einem ATTiny Prozessor. Man kann jede LED somit einzeln ansteuern, für Kommunikation gibts viele Möglichkeiten. Um Bilder darzustellen kann man sicher einen geschickten Algorithmus auf den Boards schreiben, wobei die Boards mit der Arduino IDE programmiert werden können...

Fertige Lösungen kosten natürlich fertiges Geld.

Mit welcher Refresh Rate müsst ihr arbeiten?

Im Moment gehen wir davon aus, dass wir ein 13x28 Feld haben, kann sich aber bis auf 4 Felder mit 21x21 ausweiten... noch mehr grins

Es sollen Filme drauf laufen können, also müssen alle Leds einzeln ansteuerbar sein.

Smart Leds heißt wohl, dass sie einzeln adressierbar sind? Sind die in Reihe schaltbar? Ich hab ja immernoch nur max 64 Ausgangspins.

Kosten spielen natürlich eine Rolle, kann sein dass wir den Spaß selbstfinanzieren müssen oder nur ein gedeckeltes Budget bekommen, aber die anderen Lösungen kosten ja auch was.

Wurgs... 13$ pro Stück... im Vergleich zu 80 cents... ich brauch ja auch keine RGBs... das wären ja schon fast 4.500? nur für die Leds !!

Also besser anders. :o

Die Refreshrate sollte so bei 15 pics/sec liegen damit das Bild noch bewegt aussieht, das wären dann alle 62,5 millisekunden ein neues Bild falls ich mich nicht verrechnet habe.

wie soll das ganze denn mechanisch aussehen?
Abstand zwischen den LEDs?
Alle auf einer Platte oder wollt ihr z.B. 8x8 Platten bauen und diese zusammen stecken? Wie sollen die Platten aussehen, also vom Material her und so? Oder sollen einzelne LEDs mit Kabeln verbunden werden?

Na ja es wird groß.. sehr groß.. wir nehmen uns eine Fassade mit Pixelartiger Struktur, also entweder Glasbausteine o.ä. und hängen je eine Led dahinter, die Abstände werden so ca. 40cm betragen und die Leds dementsprechend mit Kabeln verbunden, mit langen Kabeln..

Wir wollen von einem PC auf dem die Processing Videostream Umwandlung läuft über einen Arduino auf die Leds kommen.

Da es sich um eine Fassade handeln wird, brauchen wir sehr helle Leds also min. 200mw bis eventuell 1W. Da kommt ganz schön was zusammen.

Wahnsinn.

Guck Dir auf jeden Fall mal die ShiftBrights an, die sind glaube ich sogar open hardware... das Konzept von denen kann man also auch ausleihen und für andere Zwecke verwenden.

Nicht schlecht die ShiftBrights, sind auch gar nicht so teuer in großen Stückzahlen. Werd ich ins Auge fassen.

ich würde keine Shiftbright benutzen. weil Du dann ja pro LED eine eigenen "Intelligenz" hast. ich glaube das ist ein bisschen Ressourcenverschwendung.
Ich würde etwas in Richtung des Rainbowduinos nehmen. Der hat ja schon 64*3 Kanäle, wegen rgb. wenn du die alle für eine Farbe nutzt hast du schon 192 LEDs. Die sind ausserdem alle per PWM ansprechbar. Auch wenn Du das am Anfang nicht brauchst, vielleicht ist es mal später "nice to have" die Rainbowduinos kannst du aneinader Reihen mit Steckkontakten. Mit zwei Stück solltest Du ausreichend versorgt sein.
Der Rainbowduino benutzt Komponenten die extrem schnell schalten, darauf würde ich bei so vielen LEDs auch drauf achten.
Zur Leistung der LEDs: Es kann bis zu 120mA pro LED geschaltet werden, Das ist schon ne ganze Menge. Eine 10.000 mcd LED hat z.b. einen Peak von 100 mA.

rainbowduino:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241074431/8

ist noch nicht verfügbar, aber du kannst sehen welche Komponenten verwendet werden. Vielleicht hilft das. Aber in kürze dürfte der auch zu kaufen sein.

Danke schonmal eine sehr gute Idee, wir bruachen aber eventuell noch mehr Ausgangsleitsung, eventuell müssen wir die superhellen 1W LEDs benutzen, vielleicht kann man ja Transistoren statt LEDs anschließen.

Hallo,

ich hatte ein ganz ähnliches Problem, mein Display hat 1525 LEDs und funktioniert mit 2 Arduinos und den billigsten LEDs die ich gefunden habe.
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1243926539
Das Hauptproblem ist die Datenübertragung vom Computer zum Arduino, das ist auch der Grund warum ich 2 Arduinos verwenden musste. Die LED Ansteuerung funktioniert in Linien und Reihenschaltung, also gepulst, dadurch sind nur einige wenige elektronische Bauteile notwendig die auch sehr preiswert sind. Wenn dich detailliertere Informationen interessieren, melde dich doch einfach.

Bitte mehr Details dazu, intessiert mich sehr!

Die LED Ansteuerung funktioniert in Linien und Reihenschaltung, also gepulst, dadurch sind nur einige wenige elektronische Bauteile notwendig die auch sehr preiswert sind. Wenn dich detailliertere Informationen interessieren, melde dich doch einfach.

Mein Aufbau soll ziemlich genau in die Richtung gehen. Die verwendeten Teile und das ungefähre Konzept würden mich auch sehr interessieren.

Meine Ansteuerung sieht folgendermassen aus:

ich habe alle + Anschlüsse der LEDs der Horizontalen Reihen und alle - Anschlüsse der LEDs der vertikalen Reihen miteinander verbunden. in meinem Falle gibt das 61 vertikale und 25 horizontale Anschlüsse.

Die vertikalen - Anschlüsse werden direkt mit dem IC TPIC6C596 auf Ground gezogen. Ich habe einen Wiederstand in Serie geschaltet der den Strom auf 100mA begrenzt. Das IC TPIC6C596 ist ein 8Bit Shift Register mit DMos Ausgängen und kann bis zu 8 x 250mA peak steuern. Sollte mehr Strom benötigt werden gibt es den Typ TPIC6C595 mit 500mA peak pro Ausgang.

Die horizontalen + Anschlüsse sind problematischer da diese im Extremfall die ganze Reihe mit Strom versorgen müssen. In meinem Fall also 61 * 100mA = 6A. Da dieser Strom aber nur sehr kurz fliesst und die Puls-Pausenzeit 1:24 beträgt reicht ein kleiner Schalttransistor.
Ich benutze den BD652 den ich Emiterseitig direkt mit den horizontalen + Anschlüssen der LEDs und Kollektorseitig mit +5V verbinde. Die Basis steuere ich über einen Wiederstand vom Ausgang eines standard- 8Bit Shift Registers (MC74HC4094)an.

Ich brauche als für 61 x 25 LEDs:

8 x TPIC6C596 a ca 1Euro
4 x MC74HC4094 a ca 70 Cent
25 Wiederstände (Reihe)
61 Wiederstände (Strombegrenzung)
2 Europakarten für den Aufbau

Verbesserungen:
Die Ausschaltgeschwindigkeit der Reihen ist in meinem Falle ein bisschen zu langsam so dass teilweise ein kurzes Nachleuchten sichtbar wird. Dies ist einfach zu beheben indem mann die Basis des Transistors mit einem zusätzlichen Wiederstand auf Ground stabilisiert.

Hardware Ansteuerung:
Das Arduino steuert also 2 Shiftout Ausgänge, eines für die Reihen und eines für die Linien. Dafür brauche ich 6 Digitale Pins. Mit dem DigitalWrite Befehl hat das bei mir nicht richtig funktioniert da der Befehl zu langsam ist und das Display geflackert hat. Den Shiftout Befehl hab ich nicht zum laufen gebracht und daher die Direktport Manipulation verwendet (siehe exampels/directport manipulation). Damit erreiche ich einen Bildaufbau von 100Hz.
Zu erwähnen ist noch dass ich Arduino12 von einem Ibook G4 verwende da das Arduino (NG) mit diesem Compiler aus unerfindlichen Gründen bedeutend schneller läuft als mit älteren oder neueren Software Versionen. Vielleicht verhält es sich aber mit neueren Arduinos aber anders.

Arduino Ansteuerung:
Mit der Datenübertragung vom Computer zum Arduino hatte ich grosse Probleme. Der Serial Buffer des Arduinos ist für ein gesamtes Bild zu klein, dadurch müssen die Daten in 2 Paketen übertragen werden was länger dauert (Übertragung als byte Array).
Da das Arduino während dem einlesen von Daten aus dem Serial Buffer keine anderen Rechentätigkeiten ausführt, baut es auch kein Bild auf in diese Zeit, wodurch die LEDs zu flackern beginnen.
Das Problem habe ich gelöst indem ich 2 Arduinos verwende. Die Ausgänge die zu den Shift- Registern führen sind über ein Latch aktiv oder inaktiv geschaltet (Latch = eine art Schalter. Wenn das Latch aktiv ist ist der Ausgang = Eingang, wenn es inaktiv ist ist der Ausgang hochohmig. Ein Latch verwendet man wenn mehrere Geräte oder Prozessoren auf den gleichen Bus schreiben sollen.). Während das eine Arduino die Daten für das nächste Bild empfängt baut das andere das Bild auf. Ist die Übertragung beendet wechseln die Rollen.
Vielleicht kann man das Problem aber auch mit einem Ethernet Shield und nur einem Arduino lösen, das habe ich nicht ausprobiert, auf jeden Fall wäre die Bildübertragung schneller wodurch noch grössere Displays machbar wären.

hallo,
bin neu hier im forum und finde das ganze thema hier sehr spannend.
welches arduino board hast du denn benutzt balte?
grüße,
philipp

Ich habe Arduino NG Boards benutzt, die sind bereits 2 Jahre alt und Baugleich wie das Diecimilia Board.

Hallo,

ich stehe vor einem ähnlichen Problem und würde es nach etlichem Lesen gerne selbst so lösen (meine Matrix ist jedoch kleiner 10X11 LEDs), aber sie sollen auch einzeln an und aus schaltbar sein.

Dementsprechend brauche ich

2 x TPIC6C596
2 x MC74HC4094

und noch einen schalttransistor, da ich ebenfalls mehrere LEDs gleichzeitig an und abschalten möchte.

Frage: Ich habe bei etlichen versandhändlern geschaut, aber leider bin ich bisher sehr ergebnislos geblieben bei der suche nach den bauteilen.
Kennt jemand alternative Bauteile, die das selbe bewerkstellen, die man anstelle nehmen kann? Oder weiss jemand eine bezugsquelle?

Des weiteren wird hier in einem Post von einem Transistor (BD652) gesprochen. Dieser ist ebenfalls schwer zu finden. Finde nur einen mit einer leicht niedrigeren Nummer (der sich laut datenblatt nur an der Voltzahl unterscheidet). Das sollte normal dann auch klappen, aber ich finde für eine 10x11 matrix, wo maximal 7 LEDs auf einmal an sind doch etwas überdimensioniert (7*30ma = 210 ma bei 3.3V Betriebsspannung der LEDs). Worauf muss man bei der Auswahl achten? dass er richtig schaltet NPN oder PNP und dann die maximale spannung/stromstärke. Gibt es da eine faustregel, wie viel sicherheitspuffer man einrechnet wegen spitzenlasten?!

Sorry, dass die Fragen vielleicht etwas unkoordiniert sind, aber ich habe mir das bisschen wissen, was ich habe, auch nur angelesen. Praktische erfahrungen fehlen leider noch in ausreichender menge...

Wäre nett, wenn mir jemand weiter helfen kann.