10x10 RGB LED Matrix mit TLC5940

Liebe Arduino Community,

ich hätte eine kleine Frage, und möchte gerne wissen welche Lösung ihr mir vorschlägt.

Ich baue Momentan eine 10 x 10 RGB Matrix.
Ich benutze ein Arduino Mega 2560. Ich habe einen Prototyp mit eine Steckplatine realisiert.
Der Prototyp ist aktuell 2x2 LEDs groß. Die LEDs werden durch einen TLC5940 gesteuert (danach werden es 19 Stück sein).

Ich verwende die Tlc5940Library (Google Code Archive - Long-term storage for Google Code Project Hosting.)

Alles klappt bis jetzt ganz gut. Ich habe aber mit einen Multimeter gemessen, im extrem Fall (also alle PWM auf 4095) zieht das ganze schon über 1A. Zum Glück brauche ich kein Weiß in voller Intensität, ich werde die Helligkeit schon ein bisschen begrenzen, aber trotzem ist das ganze viel zu viel wenn ich 100 LEDs brauche.

Ich recherchiere seit ein paar Tagen wie ich das am besten machen könnte, um nur 5 oder 10 LEDs gleichzeitig anzuzeigen, und das in einer solchen Geschwindigkeit, dass das Auge kein flackern erkennt.

Ich hätte am Anfang gehofft, dass man es mit die TlcLibrary lösen könnte, ich habe aber da direkt nichts gefunden.

Hier sind ein 2 Szenarien die ich mir vorgestellt habe. Könnt ihr mir bitte sagen welchen am meisten Sinn macht?
(für beide Szenarien würde ich die LED Anode von einer Zeile zusammen binden).

  1. Ich benutze ein 74##174 und pro Output würde ich eine Zeile verbinden.
    der 174 wird von einen 4-bit-digital-zähler gesteuert werden (zB: 74##191).
    Damit wäre das Ganze vom Rest unabhängig, und würde Zeile für Zeile an/ausschalten.

  2. Ich habe gesehen, dass es auch die Library Tlc5940Mux gibt (http://tlc5940arduino.googlecode.com/files/Tlc5940Mux_2.zip).
    Das Prinzip wäre ziemlich ähnlich wie bei Szenario 1. Laut dieser Abbildung (http://tlc5940arduino.googlecode.com/svn/trunk/Tlc5940Mux/tlc5940mux_circuit_example.png) ist der 74LS137 und der 74LS595 dafür geeignet.

Hat jemand damit schon Erfahrung?
Ich habe gesehen, dass man dadurch auch weniger TLCs zu benutzen kann, aber das brauche ich nicht. Ich möchte nur die verschiedene Zeilen an und auschalten.

Es gibt bestimmt noch viele andere Möglichkeiten, ich fand die beiden (falls die wirklich so gehen) eigentlich ganz gut, da ich nicht so viel ändern müsste bei dem was ich bis jetzt gemacht habe.

Der Prototyp ist aktuell 2x2 LEDs groß.

Bei einer 2x2 Matrix (also 4 x 3 = 12 LEDs) brauchst Du über 1A? Da stimmt meiner Meinung nach etwas nicht. Normalerweise rechnet man mit 20mA pro LED, was bei den 12 LEDs maximal 250mA machen dürfte.

Ich habe gesehen, dass man dadurch auch weniger TLCs zu benutzen kann, aber das brauche ich nicht. Ich möchte nur die verschiedene Zeilen an und auschalten.

Was ist dann das Ziel der Übung?

Hallo pylon, vielen dank für deine Antwort.

Ich habe mich vertan für Ich bekomme 1A für das hier zusammen:

Arduino Mega
BLE Shield
1 TLC5940
1 74HC165

4 RGB LED
4 IR LED
4 IR Sensoren

Ich versuche eine 10x10 LED Tisch zu bauen.
Jedes "Pixel" ist aus 1 RGB LED, 1 IR LED, und 1 IR Sensor.

Ich habe gerade für 1 Pixel gemessen, und da bekomme ich 80mA (der TLC war auch an).
Ich müsste weiter suchen welchen KOmponent da so viel zieht (bestimmt das BLE shield oder so).

Am ende wird es trotzdem ganz schön viel gebrauchen. Was empfehlt ihr mir lieber: die Zeilen an/auschalten oder mehrere 2 oder 4A Netzteile benutzen?

Ich würde Dir zu einem einzeln ansteuerbaren LED Strip mit zB WS2811/12 Kontroller nehmen, diese auseinanderschneiden und je einen pro Feld. Da kannst Du jedes RGB-Led einzeln ansteuern und brauchst nur 1 Pin am arduino. Bei 100 LED sind das aber 6A bei 5V.
Was machst Du mit den IR LED und den IR sensoren?
Grüße Uwe

Hallo Uwe,

vielen dank für deine Antwort.
Ja das würde auch schon ganz viel ziehen, und ich würde gerne weiter mehr oder weniger des Komponente die ich ausgesucht habe behalten.
Den IR Sensor, benutze ich als touch Funktion. Wenn einen Objekt auf die "Zelle" liegt, kriegt den IR Sensor es mit.

Für Jede Zelle werden danach die verschiedene Komponente auf eine ca 40x40mm Streifenplatine gelötet.
Am ende will ich sowas erreichen: 64px Led Couchtisch - YouTube (aber in 10x10)

Viele Grüße

Ach ja die IR Sensoren Outputs sind an den 74HC165 angeschlossen.

Welche IR-Sensoren hast Du?
Grüße Uwe

Alternativ könntest Du auch pro Zelle einen ATtiny (z.B. 4313) einsetzen, dann könntest Du so etwas wie einen durchgeschleiften SPI-Bus machen, also in etwa so wie das ein WS2801 macht, aber mit Lese- und Schreibleitung für die Slaves.

Das Multiplexen einer PWM-Ausgabe halte ich für ziemlich ambitioniert. Damit Deine LEDs nicht sichtbar flackern, müsstest Du eine PWM-Grundfrequenz von über 4MHz an den TLC übergeben (100Hz * 10 Zeilen * 4096 Abstufungen). Zudem hast Du dann nur noch maximal 1/10 der Helligkeit, die Du jetzt bekommst. All das könntest Du Dir sparen, wenn Du jedes Modul autonom machst (wie oben beschrieben).

@uwefeld: ich benutze die IS471F.

@pylon: Ja das mit das multiplexen mach ja echt nicht viel Sinn. Ich brauche natürlich nicht 100% der Helligkeit, aber 1/10 wäre echt viel zu wenig.
Wenn ich einen ATtiny pro Zelle noch brauche, wird das leider die kosten noch in der höhe ziehen. Ich würde gerne eine einfache Lösung finden (natürlich falls es geht...).

Was denkt ihr von erstmal mehrere Netzteile zu benutzen? vielleicht nicht sooooo hübsch aber würde funktionieren.

hi,

ich verstehe rechnerisch die 19 TLCs, aber Du kannst 19 davon nicht hintereinenderschalten, daß muß Dir schon klar sein...

gruß stefan

@kass: Was spricht gegen fertige LED Strips, z.B. mit WS 2812? Beliebige Skalierbarkeit, billig, leicht zu programmieren, leicht zu verdrahten...

Grüße

ich würde gerne weiter mehr oder weniger des Komponente die ich ausgesucht habe behalten.

das, schätze ich mal.

gruß stefan

@eisebaer: Ich habe nicht wirklich verstanden was du mit die TLCs meinst. Kann ich nicht die 19 TLC zusammen verbinden? Da ich no momentan teste, habe ich max 3 zusammen angeschlossen und gestestet, lief bis jetzt ganz gut.

@Helmut: die LED Strips kenne ich nicht wirklich, ich müsste ersmal da ein bisschen gucken. Strom-mäßig würde es aber nicht extrem viel helfen oder?
Ich mag meine gedimmt LED ganz gerne. Natürlich mischen sich die Farben noch durch das gedimmten Plexiglas, aber mit nicht gedimmte LEDs erscheinen die 3 Farbekreise auf dem Glas...

Ich mag meine gedimmt LED ganz gerne. Natürlich mischen sich die Farben noch durch das gedimmten Plexiglas, aber mit nicht gedimmte LEDs erscheinen die 3 Farbekreise auf dem Glas...

Die Strings gibt's mit mattiertem Gehäuse, womit die ganze LED in einer (gemischten) Farbe erscheint.
Bsp: http://shop.boxtec.ch/pixel-string-50pcs-ws2801-p-40604.html oder http://shop.boxtec.ch/pixel-modul-26mm-matt-ws2801-p-40940.html
Aber auch die Strips (http://shop.boxtec.ch/pixel-strip-ws2801-p-40601.html) sind auf Milchglas in ein paar cm Entfernung nicht mehr als 3 Komponenten erkennbar.

Die WS2812 wären Vorteilhaft weil Du die Treiber bereits integriert hast und die Ansteuerung einfach ist. Sie kosten um die 0,5€ im Strip pro LED. dei SW2812 steuern die LED autonom an, der TLC braucht immer die Ansteuerung des Arduino. Um 19 TLCs in Reihe zu schalten brauchst Du Treiber um die Steuersignale zu verstärken damit Du 19 Eingänge ansteuern kannst.

Du kannst natürlich mehrere Netzteile verwenden. Du mußt dabei alle Massen zusammenschalten.

Mir gefallen die WS2811/12 besser als die WS2801.
http://www.ebay.de/itm/1m-RGB-Stripe-mit-LEDs-mit-integriertem-WS2811-60-LED-m-/170998465074?pt=DE_Möbel_Wohnen_Beleuchtung&hash=item27d04d8232

ich sehe die LED ziemlich schön leuchten

Grüße Uwe

hi,

Du kriegst sie auch einzeln um 14 cent. ist halt lötarbeit.

gruß stefan

Ok danke für eure Tipps! Ich werde es mir angucken.