RGB-LED-Matrix + ATMega

OP #2863029
Lesenswert?

Hallo zusammen,

ich weiss, dass das Thema LED-Matrix hier schon bis zum Erbrechen 
durchgekaut wurde, aber fuer meinen Anwendungsfall sind die Infos eher 
spaerlich und bevor ich anfange, was Halbgares zusammenzuwurschteln, 
frage ich doch lieber nach:

Ich benoetige eine 10x10-Matrix aus RGB-LEDs (zweidimensional, 
quadratisch). Die LEDs sollen einzeln zu schalten sein, aber die Farbe 
muss nicht einzeln einstellbar sein. Also wenn LED an, dann auch 
gleiche Farbe, wie alle anderen.

Nun frage ich mich, wie ich das am Besten organisiere. Welchen ATMega 
schlagt ihr vor und wie lassen sich 10x10 RGB-LEDs am sinnvollsten 
ansteuern?

Viele Gruesse und danke schonmal,
Martin
OP #2863055
Lesenswert?

Eumel schrieb:
> Welche Farbtiefe?

Habe ich mir ehrlich gesagt noch keine grossen Gedanken drueber gemacht, 
sollte vom Aufwand her noch vertretbar sein. Das Spektrum sollte 
abgedeckt sein, ohne dass man beim kontinuierlichen Farbwechsel allzu 
grosse Spruenge wahrnimmt.

Danke, Karlheinz... Die Frage (zugegeben: etwas unpraezise) zielte eher 
darauf ab, wie es am Besten zu loesen waere: Latches nehmen und pro 
Farbe einen Port spendieren (Mega32 z.B.?) oder doch Schieberegister?
Gast #2863096
Lesenswert?

> Das Spektrum sollte abgedeckt sein, ohne dass man
> beim kontinuierlichen Farbwechsel allzu grosse Spruenge wahrnimmt.

> > Die Farbtiefe ist ziemlich wichtig. 8 bit pro Farbe wird mit einer
> > Matrix schon etwas eng.

> Muss auch nicht sein, denke ich. Mit der Haelfte wuerde ich gut
> hinkommen.

Da widersprichst du dir aber gewaltig.

Schon bei 8 bit sieht man Sprünge, bei 4 bit sind das krasse Stufen.

30 x 10 ist mit einem ATMega schaffbar, aber nur in Assembler mit 
geschickter Programmierung und schnell ansprechbarer Hardware, aber 
blaue LEDs die den für 1:10 Multiplexing notwendigen Strom aushalten ?

Hast du mal eine Typennummer.
OP #2863126
Lesenswert?

> Da widersprichst du dir aber gewaltig.
>
> Schon bei 8 bit sieht man Sprünge, bei 4 bit sind das krasse Stufen.

Ja, habe nochmal drueber nachgedacht. Letztendlich sind die Uebergaenge 
eh nicht staendig zu sehen, also habe ich mit 4 bit genug Luft.

Wenn es schon so hart an der Grenze ist: Wie wuerde man denn ansonsten 
an sowas drangehen?
(Firma: fritzler-avr.de) #2863136
Lesenswert?

30x10 hart an der Grenze?
Mein großes LED Display hat 8x136 (16Seg Anzeigen) und der Mega32 
langweilt sich.
Das braucht bei 100Hz ne ISR Aufruffrequenz von 1kHz und mit BAM 8KHz, 
sind 2000 Befehle bei 16MHz.
Also nen neueren AVR mit 20MHz einplanen.

Dimmen kannste mit Bit Angle Modulation, das is recht 
ressourcenschonend.
Gast #2863212
Lesenswert?

> 30x10 hart an der Grenze?

Bei 8 bit PWM für die Helligkeit.

> Bit Angle Modulation

Richtig.

Wobei, wenn alle gleich gedimmt werden, könnte man sogar hardwaremässig 
mit OE/CLR durch einen Timer drangehen wenn man synchron zum Timer die 
Wiederholfrequenz setzt.

Dann reicht der ATmega für 256 x 30 x 10 LED :-)
Gast #2863524
Lesenswert?

> Da würde ich mir eine genauere Erklärung zu wünschen. Hört sich
> interessant an!

Na wenn man PWM per Timer OC1A an OE der Treiber (z.b. 74HC595)
in Hardware macht, dann hat der Prozessor die ganze Multiplexzeit
von 100 Hz * 10 = 1ms Zeit um die Daten an die Treiber zu schicken
weil er sich um nichts anderes kümmern muß.

1ms sind bei 16MHz 16000 Instruktionen, damit kann man
schon 256 * 30 = 7680 bits = 1000 Bytes mit dem aktuellen
Bild an die LED schicken, wenn die Hardware passend ist
(akzeptiert auch Bytes statt Bits, z.B. durch 8
Schieberegister parallel).
OP #2863533
Lesenswert?

Martin Wende schrieb:
> Die FETs sind falschrum...
> 10k Gatewiderstand ist auch weit entfernt von dem was da hingehört.
> Zudem sind das NFE und keine PFET.
>
> Hab dir da mal was im Anhang hinterlassen.

Danke, ja. Ist mir bewusst. Ich war noch auf der Suche nach passenden 
P-FETs (die gibts ja schoen zu zweit im Gehaeuse, leider nur SMD). 
Deswegen hab ich schnell irgendwas genommen und dabei nen N-Channel 
erwischt. War nicht so geplant. Geht nur generell um den Aufbau, ob das 
vom Prinzip so hinhauen kann.
Gast #2863559
Lesenswert?

MaWin schrieb:
> Na wenn man PWM per Timer OC1A an OE der Treiber (z.b. 74HC595)
> in Hardware macht, dann hat der Prozessor die ganze Multiplexzeit
> von 100 Hz * 10 = 1ms Zeit um die Daten an die Treiber zu schicken
> weil er sich um nichts anderes kümmern muß.
>
> 1ms sind bei 16MHz 16000 Instruktionen, damit kann man
> schon 256 * 30 = 7680 bits = 1000 Bytes mit dem aktuellen
> Bild an die LED schicken, wenn die Hardware passend ist
> (akzeptiert auch Bytes statt Bits, z.B. durch 8
> Schieberegister parallel).

Ah, Ok. Und mit dem Timer wird dann einfach nur das neue Ausgabemuster 
aktiviert?
OP #2863617
Lesenswert?

Martin Wende schrieb:
> Aber schnall trotzdem nochn Bustreiber IC vor.
> Der kann etwas mehr Strom treiben, trotzdem hat das im Bild noch 6µS
> Falltime.
> Das Ghosting dadurch ist aber nur bei 100% Helligkeit und dunklem Raum
> zu sehen.

Danke fuer den Tipp. Hab ich mal noch gemacht und das Ganze etwas 
aufgeraeumt.
Gibts noch Meinungen zu dem Konzept an sich?
Angehängte Dateien:
Gast #2863625
Lesenswert?

> Und mit dem Timer wird dann einfach nur das neue Ausgabemuster
> aktiviert?

Der Timer macht 2 Dinge:

Er sagt, wann das nächste Multiplex-Zeile drankommt.
und er sagt, wie viel Prozent der Zeit die LED an sind
(und den Rest der Multiplexzeit aus) und bestimmt damit
die Helligkeit des GESAMTEN Displays (alle LEDs gleich
hell, die einfache Anforderung von Martin S. ).

Wie ich gerade lese, RGB, also 3 PWM Ausgänge. Welcher
ATMega kann 3 ? Ich glaube, schon der ATmega8.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren