Forum: Mikrocontroller und Digitale Elektronik 312(13x24) RGB LEDs Multiplexen


von Wisler E. (wisler) Benutzerseite


Lesenswert?

vor ein paar Tagen bin ich auf den diesen Blog gestoßen:
http://www.theledart.com/blog/archives/129 dort seht ihr auch gleich 
schon das Projekt, dass mich doch sehr verwundert hat. Der Autor hat 
dort 9*16 RGB LEDs = 162 LEDs :-O mit nur einer PWM angesteuert. Er 
schreibt weiter unten dass er auf eine Auflösung von 13 Bits kommt. Nur 
leider versteh ich noch nicht wie er das macht. Eine kleine Beschreibung 
ist hier zu finden: 
http://www.instructables.com/id/Aurora-9x18-RGB-LED-art/?ALLSTEPS. Aber 
aus dieser Beschreibung werde ich nicht schlau.

Kommen wir nun eigentlich zu meinem Projekt. Ich möchte gerne 312 RGB 
LEDs ansteuern  mit mindestens 12Bit Auflösung. Ich will einen 
ATmega1284p@20MHz verwenden, wenn es sein muss auch mehrere, die dann 
über UART oder SPI kommunizieren können. Weiterhin soll natürlich jede 
LED einzeln dimmbar sein um die Farben einzustellen.

Was denkt ihr wie viele ATmegas man braucht um so etwas zu realisieren? 
Was haltet ihr von der verwendeten Technik der Aurora Platine? Das 
Verfahren kombiniert wohl eine PWM und eine 
PDM(http://en.wikipedia.org/wiki/Pulse-density_modulation). Was mich 
verwundert ist, dass der verwendete PIC nur eine PWM hat und damit alle 
LEDs einzeln gedimmt werden. Der PIC ist leider ein 16Bit Controller und 
ich bin mir nicht ganz sicher, ob das mit dem ATmega überhaupt möglich 
ist.

Vielleicht hat hier ja jemand eine bessere Idee oder kann mir erklären, 
wie das Verfahren genau funktioniert.

Wisler

von Eumel (Gast)


Lesenswert?

Wisler Electronics schrieb:
> Ich möchte gerne 312 RGB
> LEDs ansteuern  mit mindestens 12Bit Auflösung

Dann nimm ein "paar" TLC5940.

mindestens 12bit...lol

von Georg G. (df2au)


Lesenswert?

Wisler Electronics schrieb:
> dort 9*16 RGB LEDs = 162 LEDs :-O mit nur einer PWM angesteuert. Er
> schreibt weiter unten dass er auf eine Auflösung von 13 Bits kommt.

Es sind immer 16 LEDs parallel angesteuert, so dass es 9 Gruppen mit je 
drei Farben sind.

Zum Thema 12 oder 13 Bits: Wende dich mal an den Augenarzt/Optiker 
deines Vertrauens und frag mal, wie es um die Farbauflösung des 
menschlichen Auges bestellt ist. Alternativ überleg mal, wie es viele 
Systeme schaffen, mit 3+3+2 Bit zu erträglichen Farben zu kommen.

von Wisler E. (wisler) Benutzerseite


Lesenswert?

@ Georg G.:

und wie werden die 16 Leds zeitlich gesteuert? Wie kann es 
funktionieren, dass nur ein PWM Ausgang verwendet wird?

Also ich finde schon, dass bei 8Bit Auflösung und bei langsamen 
Farbürgängen die Auflösung einfach zu gering ist. Mit 10Bit sieht es 
schon sehr viel flüssiger aus.

von Georg G. (df2au)


Lesenswert?

In dem zweiten von dir angegebenen Link ist das sehr gut beschrieben. Du 
musst nur realisieren, dass nicht jede LED separat angesteuert wird, 
sondern dass es eben immer 16 Stück = 1 Ring parallel sind, steht 
relativ klein neben den LED Symbolen.

Es werden nacheinander immer alle R, dann G, dann B LEDs eines Rings 
angesteuert. Dann der nächste Ring. Die notwendige Pulsbreite wird 
jeweils vorher gesetzt.

Wenn du bei 8 Bit/Farbe die Farbübergänge sehen kannst, hast du 
definitiv etwas falsch gemacht - oder bist ein biologisches Wunder.

von Wisler E. (wisler) Benutzerseite


Lesenswert?

@Georg G.:
Also ich glaub ich habe das Verfahren jetzt verstanden. Es müsste doch 
so sein, dass die PWM in jedem Schritt eine neue Pulsbreite erhält. Aber 
die einzelnen Schritt sind wieder in 255 Schritte unterteilt und nun 
wird einfach die gewünschte LED z.B. LED1 eingeschaltet und umso höher 
die eingestellte Stufe der LED umso mehr pulse werden in einem Durchlauf 
erzeugt. Ein kompletter Durchlauf dauert bei dem Bild dann 8.1ms. 
Eigentlich ist es dann eine Mischung aus PWM und PDM? Ich weiß jetzt ob 
wir jetzt an einander vorbei geredet haben oder doch das gleiche meinen.

Zu den 10Bits nochmal, ich bin damals hingegangen und habe die SOFT-PWM 
hier vom Forum aufgesetzt und die Werte durch ein Tabelle wie in 
http://www.mikrocontroller.net/articles/LED-Fading beschrieben wieder 
auf 256 Stufen gesetzt. So erhält man einen schönen Fadingeffekt. Das 
ist dann dabei entstanden: http://www.youtube.com/watch?v=3zc0v70G8vY. 
Ich weiß jetzt nicht wie du das machen würdest, aber ich dachte immer 
das wäre der beste Weg.

von Simon B. (nomis)


Lesenswert?

Georg G. schrieb:
> Wenn du bei 8 Bit/Farbe die Farbübergänge sehen kannst, hast du
> definitiv etwas falsch gemacht - oder bist ein biologisches Wunder.

Nunja, ich kann das so nicht stehenlassen. Bei einer linearen 8-bit-PWM 
ist definitiv am unteren Ende ein Problem. Der Schritt von 1/256'tel auf 
2/256'tel der maximalen Helligkeit wird vom Auge definitiv noch als 
deutliche Abstufung wahrgenommen, was gerade z.B. beim runterdimmen 
eines Motivs ein Problem ist.

Viele Grüße,
        Simon

von Andreas K. (necromancer1982)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe mir vor kurzem eine 11x11 Matrix (für eine RGB-Word-Clock) 
aufgebaut.
Angesteuert wird das ganze über einen PIC und zwar mit nur einer Clock- 
und einer Datenleitung.

Die Lösung: WS2801 (pro LED)

Dieser Chip kann eine RGB-LED ansteuern und zwar mit je 8 Bit pro Farbe 
=> 16,7 Mio Farben ;-)
Alle LEDs sitzen auf einer kleinen Platine (WS2801, 3x Vorwiderstand und 
LED). Die Platinen werden datentechnisch alle in Reihe geschaltet und 
parallel mit Strom versorgt.

Die Ansteuerung ist eigentlich auch sehr simpel, man "schiebt" ein 
Muster in die Matrix und ein "Anzeigen-Befehl" hinterher. Dieses Muster 
wird dann solange angezeigt, bis das nächste Muster reingeschoben und 
angezeigt wird.

Gruß Andi

von st (Gast)


Lesenswert?

eine Möglichkeit wäre einen dicken STM32F4 mit 135 IOs zu nehmen. Damit 
hättest du schonmal über 100 frei einstellbare PWM Ausgänge. Über 
Matrixansteuerung kann man das dann noch multiplizieren.

von Sven (Gast)


Lesenswert?

Moin

also ich würde bald sagen
http://www.solderlab.de/index.php/hardware/matrix-controller-board
ist zwar nur 8x16 aber dafür gut und fertig

und sonst kannste sa sicher ideen klauen oder das zweimal aufbauen

übrings TLC5940 sind bei ebay garnicht so teuer

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

st schrieb:
> eine Möglichkeit wäre einen dicken STM32F4 mit 135 IOs zu nehmen. Damit
> hättest du schonmal über 100 frei einstellbare PWM Ausgänge. Über

 Und 9 Stück parallel ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.