Forum: Mikrocontroller und Digitale Elektronik RGB LED Würfel, common Kathode driver


von Philip G. (philip_geissler)


Lesenswert?

Moin,

Wir wollen einen 8×8×8 RGB-Led Cube bauen. Dafür haben wir auch schon 
die LEDs gekauft und zu einem funktionierenden Gitter zusammengelötet, 
sodass wir je 64 R,G und B Kontakte für die LEDsäulen und 8 Erd-Kontakte 
für die horizontalen Ebenen haben.

Die derzeitige Idee der Ansteuerung besteht darin Shift-Register 
(SN74HC595N)
an die Farbkontakte anzuschließen und die Daten mithilfe eines FPGA's in 
die Shiftregister zu schreiben, um die nötige Frequenz für geschmeidige 
Animationen liefern zu können.
Für die Erdungen wollen wir Mosfettreiber nutzen, damit wir den Strom 
(bis zu 64*3*10mA) einer ganzen Schicht auch konsistent schalten können.

Wir haben aber zwei Probleme:
1) Das Treiben von 8 Led-Kanälen mit einem Shift-Register ist suboptimal
2) Wir arbeiten mit 5V und jeder Led-Kanal hat eine andere 
Vorwärtsspannung, was bedeutet, dass wir die Säulen mit ohmschen 
Widerständen vorschalten (und löten) müssen, was die Hälfte der Energie 
verschwendet (schlecht)

Wir könnten 1) umgehen, wenn wir einen Led-Treiber (z.B. TLC5958) nutzen 
würden. Alle die wir gefunden haben sind aber Common-Anode Treiber. Und 
wir haben jetzt einen fertig zusammengebauten Common-Kathode Würfel.
Für 2) müssten wir schon vorher Spannung transformieren (oder auch den 
Led-Treiber nutzen), und das verkompliziert die Schaltung, da wie für 
jeden LED-Kanal andere Steuerung brauchen.

Gibt es dafür etwas äquivalentes?
Oder hat jemand Ideen, wie wir den Ansteuerungsaufbau besser machen 
können, bevor wir wirklich anfangen Steuerungsbauteile dafür zu kaufen 
und zusammenzulöten?

von Mic R. (microller)


Lesenswert?

Warum nehmt ihr nicht WS2812B / NeoPixel LEDs?
Ihr würdet euch viels erleichtern ...

von Philip G. (philip_geissler)


Lesenswert?

Wir wollten die typischen Led-Hütchen (5mm LED) verwenden, damit der 
Würfel am Ende schöner aussieht.

Das mit Common-Anode ist und schlicht zu spät aufgefallen

von derrüdig (Gast)


Lesenswert?

Welche LEDs habt ihr denn dann verwendet?

von Manfred (Gast)


Lesenswert?

Philip G. schrieb:
> Wir arbeiten mit 5V und jeder Led-Kanal hat eine andere
> Vorwärtsspannung, was bedeutet, dass wir die Säulen mit ohmschen
> Widerständen vorschalten (und löten) müssen, was die Hälfte der Energie
> verschwendet (schlecht)

Unfug, ob der Strom per Widerstand oder per Treiber-IC begrenzt wird, 
ändert nichts an der Gesamtleistung.

Wenn ich verschiedene LED-Farben mit den selben Strom betreibe, habe ich 
optisch den störenden Eindruck unterschiedlicher Helligkeiten.

Das liesse sich mit Widerständen anpassen, während ein Treiber-IC den 
gleichen Strom für alle liefert.

von Lukas (Gast)


Lesenswert?

Philip G. schrieb:
> Die derzeitige Idee der Ansteuerung besteht darin Shift-Register
> (SN74HC595N)

Philip G. schrieb:
> bis zu 64310mA

Die 64310mA sind vermutlich wenn alle LEDs und alle Farben gleichzeitig 
an sind?
Das würde dann ca 40mA je Ausgang der schieberegister machen. Das von 
dir angegebene schieberegiater schafft das nicht annähernd, ein 
TPIC6B595N würde das aber direkt treiben können (ca bis 100mA alle 
Kanäle parallel)

Auch würde ich überlegen ob multiplexing eine Option ist.
Die grundschaltung für eine (oder z. B. Jede zweite) Ebene entwerfen und 
dann mehrere Ebenen (highside) verbinden und durch den lowside switch 
zwischen den Ebenen schalten.
Da das schieberegister je Ausgang ja aus 2 seriellen d-latches besteht 
wobei der erste für die datenaufnahme/Weitergabe zuständig ist und das 
zweite dann wirklich den Ausgang steuert geht das mit schieberegister 
recht komfortabel.
während Ebene 1 leuchtet kann man bereits die Daten für die Ebene 2 
reinschreiben und wenn man alle drin hat übernehmen und lowside switch 
wechseln
Das müsste mit RCK (schreiben) und SRCK (wirklich an den Ausgang 
übernehmen) gehen, bin da aber nicht mehr ganz sicher, am besten nochmal 
im Datenblatt nachlesen das lügt nicht

von Heinz R. (heijz)


Lesenswert?

Manfred schrieb:
> Unfug, ob der Strom per Widerstand oder per Treiber-IC begrenzt wird,
> ändert nichts an der Gesamtleistung.

das stimmt so leider nicht

Wie soll der Treiber den Strom auch begrenzen ohne ihn zu verheizen?

hier wird näher darauf eingegangen:


https://www.ti.com/lit/an/sluaa69/sluaa69.pdf?ts=1619685423659&ref_url=https%253A%252F%252Fwww.google.com%252F

von Manfred (Gast)


Lesenswert?

Heinz R. schrieb:
>> Unfug, ob der Strom per Widerstand oder per Treiber-IC begrenzt wird,
>> ändert nichts an der Gesamtleistung.
>
> das stimmt so leider nicht
>
> Wie soll der Treiber den Strom auch begrenzen ohne ihn zu verheizen?

Nanu, um 21:00 schon zuviel Alkohol?

von Lukas (Gast)


Lesenswert?

Nochmal ein bisschen klarer formuliert damit es zu keinen Verwirrung 
kommt und weil I h es genau vertauscht hab:

Takt an SRCK + SER IN - > Daten in die "vor latch" schreiben und jeweils 
zum nächsten wwitergeben

Flanke an RCK: Daten des "vor latch" werden an den Ausgang übernommen

von Heinz R. (heijz)


Lesenswert?

Manfred schrieb:
> Nanu, um 21:00 schon zuviel Alkohol?

ich kann mich über Dich echt nur wundern, Hauptsache dumm daher 
gelabert...
Hast Du meinen Link angeschaut?


Denkst Du in so einem LED-Treiber ist für jede einzelne LED ein 
DC-DC-Wandler?
Denkst Du da kann man mal kurz mit PWM alles so hinbügeln das die LED 
das über Jahre überlebt?

von Mic R. (microller)


Lesenswert?

Philip G. schrieb:
> Wir wollten die typischen Led-Hütchen (5mm LED) verwenden, damit der
> Würfel am Ende schöner aussieht.

Es gibt die ws2812b neopixel auch als 5mm led Hütchen, schaut mal APA106 
...
Ihr erspart euch viel Arbeit,  und vor allem auch Diskussionen ;-)

von Lukas (Gast)


Lesenswert?

Philip G. schrieb:
> Oder hat jemand Ideen, wie wir den Ansteuerungsaufbau besser machen
> können,

Ihr könnt an den drei Anoden an allen RGB-LEDs jeweils drei 
NPN-Transistoren vorschalten. Dann können diese wiederum mit positiver 
Spannung angesteuert werden.

von Lukas (Gast)


Lesenswert?

Philip G. schrieb:
> Und wir haben jetzt einen fertig zusammengebauten Common-Kathode Würfel.

Achso, dann habe ich das verwechselt. Also genau umgekehrt. Es müssen 
natürlich PNP-Transistoren sein, die dann negativ angesteuert werden 
können.

von Lukas (Gast)


Lesenswert?

Lukas schrieb:
> Ihr könnt an den drei Anoden an allen RGB-LEDs jeweils drei
> NPN-Transistoren vorschalten. Dann können diese wiederum mit positiver
> Spannung angesteuert werden.

Wenn dann müsste man da PNP nehmen und könnte dann mit 0/5V schalten
Sehe aber absolut keinen Sinn darin...

Und bitte nimm dir in zukunft einen Nick  der in diesem thread noch 
nicht vorkommt

von Lukas 2 (Gast)


Lesenswert?

Lukas schrieb:
> Und bitte nimm dir in zukunft einen Nick  der in diesem thread noch
> nicht vorkommt

Huch, hier gibt es ja schon einen Lukas. Ok, dann bin ich ab jetzt der 
Lukas 2!

von derrüdig (Gast)


Lesenswert?

Heinz R. schrieb:
> Denkst Du da kann man mal kurz mit PWM alles so hinbügeln das die LED
> das über Jahre überlebt?

Abgesehen von der Leistung, wäre das auch ein Bedenken für 
hochfrequentes (100kHz) normales PWM für Helligkeitsvariation?

von Heinz R. (heijz)


Lesenswert?

derrüdig schrieb:
> Abgesehen von der Leistung, wäre das auch ein Bedenken für
> hochfrequentes (100kHz) normales PWM für Helligkeitsvariation?

nein, aber die LED sollte halt innerhalb Ihrer Spezifikation betrieben 
werden

von MaWin (Gast)


Lesenswert?

Philip G. schrieb:
> Wir könnten 1) umgehen, wenn wir einen Led-Treiber (z.B. TLC5958) nutzen
> würden. Alle die wir gefunden haben sind aber Common-Anode Treiber

Ja.

So ist das halt

Daher informiert man sich vorher.

Die Verluste sind aber dieselben, egal ob mit Vorwiderstand oder 
Konstantstromtreibern es kostet euch nur 192 extra einzulötende 
Widerstände.

Aber 64 x 3 x 10 mA fliessen ja nur 1/8 der Zeit. Eure LEDs sind nur so 
hell, als ob sie 1.25mA Dauerstrom bekämen. Kann ausreichen, aber 80mA 
wären drin, bei 16A Netzteil und MOSFETs und ausreichend starken 
Treibern statt der 595.

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

von guest (Gast)


Lesenswert?

Philip G. schrieb:
> 64*3*10mA

Am PC wird 64 mal 3 mal 10mA Angezeigt

Am Handy wird 64310mA Angezeigt

von Lukas 2 (Gast)


Lesenswert?

guest schrieb:
> Am Handy wird 64310mA Angezeigt

Dann schau mal genau hin. Die 3 ist schräg gestellt, weil das Malzeichen 
vor und hinter einer Zahl (3) für eine schräge Darstellung 
verantwortlich ist, ohne dabei selbst sichtbar zu werden.

von Manfred (Gast)


Lesenswert?

MaWin schrieb:
> Die Verluste sind aber dieselben, egal ob mit Vorwiderstand oder
> Konstantstromtreibern

Hier wurde das in Abrede gestellt:
Heinz R. schrieb:
> Manfred schrieb:
>> Unfug, ob der Strom per Widerstand oder per Treiber-IC begrenzt wird,
>> ändert nichts an der Gesamtleistung.
>
> das stimmt so leider nicht

MaWin schrieb:
> es kostet euch nur 192 extra einzulötende Widerstände.

> Aber 64 x 3 x 10 mA fliessen ja nur 1/8 der Zeit. Eure LEDs sind nur so
> hell, als ob sie 1.25mA Dauerstrom bekämen.

Ich kenne die genaue Schaltung nicht, aber bei Multiplexbetrieb braucht 
doch nicht jede LED ihren Widerstand, kommt man da nicht mit weniger an 
den Knotenpunkten hin?

von Philip G. (philip_geissler)


Lesenswert?

derrüdig schrieb:
> Welche LEDs habt ihr denn dann verwendet?

Die genaue Bauteilkennzeichnung weiß ich nicht, aber es sind generische 
5mm Common Kathode Leds (Diese auf Amazon: 
https://www.amazon.de/Eastlion-Gemeinsame-Kathode-RGB-LED-Emitting/dp/B00N7BL2R4)


Manfred schrieb:
> [...] während ein Treiber-IC den
> gleichen Strom für alle liefert.

Ja, aber das könnten wir soweit ich weiß lösen, indem wir die LED 
Treiber
immer nur für eine Farbe verwenden und dafür richtig einstellen, sodass 
wir das doch keine Vorwiderstände brauchen würden

von Philip G. (philip_geissler)


Lesenswert?

Lukas schrieb:
> Die 64310mA sind vermutlich wenn alle LEDs und alle Farben gleichzeitig
> an sind? [...]
> Auch würde ich überlegen ob multiplexing eine Option ist.

Sorry das hab ich vielleicht falsch formatiert, ich meine
3 [kanäle] mal 64 [LED pro Schicht] mal 10mA [Strom pro LED]
Multiplexing war da sowiso die Idee.

Mic R. schrieb:
> Es gibt die ws2812b neopixel auch als 5mm led Hütchen, schaut mal APA106
> ...
> Ihr erspart euch viel Arbeit,  und vor allem auch Diskussionen ;-)

Nun ist das Würfel-Gitter aber schon gelötet und ich muss damit leben 
:-)

Lukas schrieb:
> Ihr könnt an den drei Anoden an allen RGB-LEDs jeweils drei
> NPN-Transistoren vorschalten. Dann können diese wiederum mit positiver
> Spannung angesteuert werden.

Also mit COntrollerICs haben wir mit Common Kathode einfach Pech?

von MaWin (Gast)


Lesenswert?

Manfred schrieb:
> Hier wurde das in Abrede gestellt

Es gibt hier immer dumme Beiträge.

Manfred schrieb:
> Ich kenne die genaue Schaltung nicht, aber bei Multiplexbetrieb braucht
> doch nicht jede LED ihren Widerstand

Du kannst davon aus gehen, dass ich die notwendige Anzahl der 
Widerstände schon richtig berechnet habe, 3 x 64

von Philip G. (philip_geissler)


Lesenswert?

MaWin schrieb:
> Aber 64 x 3 x 10 mA fliessen ja nur 1/8 der Zeit. Eure LEDs sind nur so
> hell, als ob sie 1.25mA Dauerstrom bekämen. Kann ausreichen, aber 80mA
> wären drin, bei 16A Netzteil und MOSFETs und ausreichend starken
> Treibern statt der 595.

Hmm, das ist ne Idee. Aber was würden wir dann für die Ansteuerung der 
Säulen nutzen, da es ja eben keine LED Treiber für unsere Common Kathode 
LEDs gibt und unsere SN74HC595 Shiftregister uns da abrauchen?
jede der 196 Säulen selbst auch nochmal mit einem Mosfet zu treiben, 
will man ja auch nicht.

An alle: Ich bin die Kommentare der Reihe nach durchgegangen und habe 
versucht alles was ich konnte zu beantworten, sorry wenn ich jetzt 
irgendwas noch gesagt habe was sowiso schon geklärt worden ist (wie die 
64x3x10)

die 10mA waren auch erst einmal nur eine Schätzung des LEDverbrauchs, 
basierend auf der 20mA Maximaldauerstromangabe von Amazon.

: Bearbeitet durch User
von Heinz R. (heijz)


Lesenswert?

MaWin schrieb:
> Manfred schrieb:
>> Hier wurde das in Abrede gestellt


Aha, und warum bauen dann die ganzen Displayhersteller bei 
LED-Videowänden mit Common Anode LEDs Widerstände für die rote LED mit 
ein?

Ja, man kann es bei Common Cathode LEDs anders lösen - über 2 
unterschiedliche Betriebsspannungen

Dazu bedarf es aber LEDs mit mehr als 4 Anschlüssen

Das ist im von mir verlinkten TI-Dokument gut beschrieben

MaWin schrieb:
> Es gibt hier immer dumme Beiträge.

Oh ja, habe gerade einen gefunden - Absender MaWin :-)

Philip G. schrieb:
> Hmm, das ist ne Idee. Aber was würden wir dann für die Ansteuerung der
> Säulen nutzen, da es ja eben keine LED Treiber für unsere Common Kathode
> LEDs gibt und unsere SN74HC595 Shiftregister uns da abrauchen?
> jede der 196 Säulen selbst auch nochmal mit einem Mosfet zu treiben,
> will man ja auch nicht.

Wie viele Würfel habt Ihr denn schon gebaut? Du schreibst von FPGA usw - 
ganz ehrlich - ich würde die Würfel noch mal neu löten - etwas mehr 
Arbeit aber spart Dir später viel Zeit

Es gibt momentan nur sehr wenige LED-Treiber für Common Cathode am 
Markt, auch die großen Displayhersteller tun sich hier momentan sehr 
schwer

von MaWin (Gast)


Lesenswert?

Philip G. schrieb:
> Aber was würden wir dann für die Ansteuerung der Säulen nutzen, da es ja
> eben keine LED Treiber für unsere Common Kathode LEDs gibt und unsere
> SN74HC595 Shiftregister uns da abrauchen?

MIC5891 ?

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.