Forum: Mikrocontroller und Digitale Elektronik RP2040: 33 LEDs einzeln schalten und zusammen dimmen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Andreas B. (ab-tools)


Lesenswert?

Hallo zusammen,

folgende Aufgabestellung:
- RP2040 Mikrokontroller.
- 33 LEDs (je 2-3 V, max. 20 mA) sollen einzeln ein-/ausgeschaltet 
werden können.
- Alle gerade eingeschalteten LEDs sollen zusammen dimmbar sein (also 
immer selber PWM-Dimmwert für alle eingeschalteten LEDs).

Wäre keine Dimmung nötig, würde ich Port-Extender wie den MCP23017 
nehmen.

Sollten alle LEDs einzeln gedimmt werden (unterschiedlicher Dimmwert pro 
LED) wären TLC5940 wohl eine geeignete Lösung.

Letzterer wäre natürlich auch hier möglich, erscheint mir aber für 
diesen Anwendungsfall (selber PWM-Dimmwert für alle eingeschalteten 
LEDs) etwas überdimensioniert.

Was wäre aus eurer Sicht für solch einen Anwendungsfall eine optimale 
Lösung?

Viele Grüße und danke euch im Voraus
Andreas

: Bearbeitet durch User
von Mi N. (msx)


Lesenswert?

Andreas B. schrieb:
> Was wäre aus eurer Sicht für solch einen Anwendungsfall eine optimale
> Lösung?

Optimal ist die Lösung, die Du selber beherrschst. Einen RP2040 braucht 
man nicht zwingend, er schadet aber auch nicht.
3,3 V als Versorgungsspannung könnten für die LEDs etwas zu knapp 
bemessen sein.
Seinerzeit hatte ich einen ATmega48 dafür verwendet und entsprechend 
viele Schieberegister angeschlossen: 
http://mino-elektronik.de/AVR_PWM_64/AVR_PWM_64.htm
Du kannst natürlich auch die TLC.... nehmen, wenn Du sie schon in der 
Schublade hast.

von Falk B. (falk)


Lesenswert?

Andreas B. schrieb:

> Sollten alle LEDs einzeln gedimmt werden (unterschiedlicher Dimmwert pro
> LED) wären TLC5940s wohl eine geeignete Lösung.

Dann nimm den und sei glücklich.

> Letzterer wäre natürlich auch hier möglich, erscheint mir aber für
> diesen Anwendungsfall (selber PWM-Dimmwert für alle eingeschalteten
> LEDs) etwas überdimensioniert.

So what! Einfach und preiswert verfügbar, einfach nutzbar. Fertig.

> Was wäre aus eurer Sicht für solch einen Anwendungsfall eine optimale
> Lösung?

Du braucht keine optimale Lösung, eine gute reicht.

von Steve van de Grens (roehrmond)


Lesenswert?

Andreas B. schrieb:
> Wäre keine Dimmung nötig, würde ich Port-Extender wie den MCP23017
> nehmen.

Den kannst du ja nehmen, um die Anoden der LEDs einzeln zu schalten.

Und an alle Kathoden hängst du einen gemeinsam verwendeten Transistor 
zum Dimmen mittels PWM (oder wie auch immer du dimmen wolltest).

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> Was wäre aus eurer Sicht für solch einen Anwendungsfall eine optimale
> Lösung?

Warum kaufst du einen rattenschnellen Prozessor und fühlst dich trotzdem 
nicht in der Lage ihn zum dimmen zu verwenden ?

Das Problem vom RP2040 ist eher, sass er nicht 33 x 20mA ansteuern kann, 
man braucht also sowieso Porterweiterung.

Am billigsten wohl 74HC595 mit Vorwiderstand, praktischer DM13 o.a, mit 
Konstantstromsenken. Und beide kann man über OE gemeinsam dimmen.

Die 33. LED würde ich direkt vom RP2040 steuern.
https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.8.1

Weniger Aufwand wäre Multiplexansteuerung, wie MAX7219 oder 
selbstgemacht mit 6 Zeilen a 6 Spalten und 120mA an den LEDs. Auch da 
geht neben dem Multiplexen problemlos Dimmen per Programm - wenn man 
programmieren kann.

von Andreas B. (ab-tools)


Lesenswert?

Hallo Michael,

Michael B. schrieb:
> Andreas B. schrieb:
>> Was wäre aus eurer Sicht für solch einen Anwendungsfall eine optimale
>> Lösung?
>
> Warum kaufst du einen rattenschnellen Prozessor und fühlst dich trotzdem
> nicht in der Lage ihn zum dimmen zu verwenden ?

Der RP2040 wird ja primär für die eigentliche Anwendung benötigt, die 
LEDs stellen hier lediglich die Ausgabe dar - daher der "rattenschnelle 
Prozessor". ;-)

> Das Problem vom RP2040 ist eher, sass er nicht 33 x 20mA ansteuern kann,
> man braucht also sowieso Porterweiterung.

Genau, deswegen die Frage nach einer guten Lösung dafür.

> Am billigsten wohl 74HC595 mit Vorwiderstand, praktischer DM13 o.a, mit
> Konstantstromsenken. Und beide kann man über OE gemeinsam dimmen.

Verstehe, 74HC595 als Shift-Register.
Was ist der DM13? Hast du da ggf. einen Link zu?

Steve van de Grens schrieb:
> Andreas B. schrieb:
>> Wäre keine Dimmung nötig, würde ich Port-Extender wie den MCP23017
>> nehmen.
>
> Den kannst du ja nehmen, um die Anoden der LEDs einzeln zu schalten.
>
> Und an alle Kathoden hängst du einen gemeinsam verwendeten Transistor
> zum Dimmen mittels PWM (oder wie auch immer du dimmen wolltest).

Danke, Steve, das klingt auch nach einer sehr guten Option!
Zumal ich die MCP23017-Teile bereits kennen und vorrätig habe.

Man bräuchte dann entsprechend 3x MCP23017 (33 LEDs ist wirklich eine 
blöde Anzahl ;-) ). Ich werde dazu mal ein Schaltbild erstellen und hier 
zum "Gegenprüfen" posten. ;-)

Vielen Dank nochmals allseits für eure schnellen Antworten
Andreas

von Sebastian W. (wangnick)


Lesenswert?

Steve van de Grens schrieb:
> Den kannst du ja nehmen, um die Anoden der LEDs einzeln zu schalten.

Wenn ich das Datenblatt des MCP23017 richtig verstehe kann der nur 
maximal 125mA Gesamtstrom liefern bzw. nur maximal 150mA Gesamtstrom 
abführen. Ein MCP23017 reicht also anscheinend bei 20mA nur für 6 Anoden 
bzw. 7 Kathoden.

LG, Sebastian

von Andreas B. (ab-tools)


Lesenswert?

Sebastian W. schrieb:
> Steve van de Grens schrieb:
>> Den kannst du ja nehmen, um die Anoden der LEDs einzeln zu schalten.
>
> Wenn ich das Datenblatt des MCP23017 richtig verstehe kann der nur
> maximal 125mA Gesamtstrom liefern bzw. nur maximal 150mA Gesamtstrom
> abführen. Ein MCP23017 reicht also anscheinend bei 20mA nur für 6 Anoden
> bzw. 7 Kathoden.
>
> LG, Sebastian

Danke, Sebastian, ein guter Punkt:
Ich werde die LEDs mal genau ausmessen wie viel diese tatsächlich 
ziehen. Mann muss sie ja auch nicht bei voller Leistung laufen lassen.

von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> Was ist der DM13? Hast du da ggf. einen Link zu?

https://content.instructables.com/FIQ/NJPX/I5F7SFVH/FIQNJPXI5F7SFVH.pdf

Es gibt viele Hersteller mit ähnlichen Chips.

https://www.ebay.de/itm/332492441470

von Andreas B. (ab-tools)


Lesenswert?

Michael B. schrieb:
> Andreas B. schrieb:
>> Was ist der DM13? Hast du da ggf. einen Link zu?
>
> https://content.instructables.com/FIQ/NJPX/I5F7SFVH/FIQNJPXI5F7SFVH.pdf
>
> Es gibt viele Hersteller mit ähnlichen Chips.
>
> https://www.ebay.de/itm/332492441470

Vielen Dank, Michael!

Verstehe ich das Datenblatt richtig, dass
Vout = max. 0.5Vdd
bedeutet, dass er bei 3,3 V Supply lediglich 1,65 V für die LEDs am 
Output "übrig" hat. Das wäre wohl etwas wenig.

von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> Verstehe ich das Datenblatt richtig,

Nein.

> dass Vout = max. 0.5Vdd
> bedeutet, dass er bei 3,3 V Supply lediglich 1,65 V für die LEDs am
> Output "übrig" hat.

Maximal verliert er 1V, bei 60mA LED Strom. Bei 20mA eher 0.3V laut 
Output Current as a Function of Output Voltage

Und er regelt bis 3V am Ausgang oder 0.5V VDD auf 0.5% genau, ausserhalb 
wohl schlechter.

von Andreas B. (ab-tools)


Lesenswert?

Michael B. schrieb:
> Andreas B. schrieb:
>> Verstehe ich das Datenblatt richtig,
>
> Nein.
>
>> dass Vout = max. 0.5Vdd
>> bedeutet, dass er bei 3,3 V Supply lediglich 1,65 V für die LEDs am
>> Output "übrig" hat.
>
> Maximal verliert er 1V, bei 60mA LED Strom. Bei 20mA eher 0.3V laut
> Output Current as a Function of Output Voltage
>
> Und er regelt bis 3V am Ausgang oder 0.5V VDD auf 0.5% genau, ausserhalb
> wohl schlechter.

Danke, Michael, nun sehe ich auch das "Output Current as a Function of 
Output Voltage"-Diagramm, macht Sinn.

Dann scheint das Teil wirklich eine sehr gute Lösung zu sein, zumal es 
einem noch die zusätzlichen Vorwiderstände der LEDs erspart dank 
"constant current".

von Mi N. (msx)


Lesenswert?

Andreas B. schrieb:
> daher der "rattenschnelle Prozessor". ;-)

> Man bräuchte dann entsprechend 3x MCP23017 (33 LEDs ist wirklich eine
> blöde Anzahl ;-)

Rein funktional könnte der RP2040 auch mit 12 Portpins eine 6x6 Matrix 
ansteuern und ist auch für gemeinsames Dimmen schnell genug.
Blöd dabei, man braucht MOSFETs und Widerstände.

von Steve van de Grens (roehrmond)


Lesenswert?

Man muss ja nicht unbedingt 20 mA durch die LEDs schicken. Mit 8 mA 
werden sie auch gut leuchten, sofern es keine alten Restposten aus dem 
letzten Jahrtausend sind.

von Bauform B. (bauformb)


Lesenswert?

Andreas B. schrieb:
> 33 LEDs ist wirklich eine blöde Anzahl

Ein IS31FL3265A hat 18 Konstantstrom-Ausgänge im TSSOP-28 und I2C (oder 
SPI, ...3265B).

von Andreas B. (ab-tools)


Lesenswert?

Steve van de Grens schrieb:
> Man muss ja nicht unbedingt 20 mA durch die LEDs schicken. Mit 8 mA
> werden sie auch gut leuchten, sofern es keine alten Restposten aus dem
> letzten Jahrtausend sind.

Absolut, das denke ich auch.

Bauform B. schrieb:
> Andreas B. schrieb:
>> 33 LEDs ist wirklich eine blöde Anzahl
>
> Ein IS31FL3265A hat 18 Konstantstrom-Ausgänge im TSSOP-28 und I2C (oder
> SPI, ...3265B).

OK, 18 Channel wären natürlich super und PWM-Steuerung ist auch gleich 
integriert. Aber bin mir ehrlich gesagt nicht so sicher, ob ich mich an 
ein TSSOP-28-Package mit 0,65 mm PIN-Abstand ran traue. ;-)

Bisher klingt tatsächlich die Variante mit dem DM13A, den Michael 
vorgeschlagen hat, am "einfachsten" - auch wenn ich von den Teilen dann 
halt 3 Stück brauche, sie sind ja recht günstig.

von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> auch wenn ich von den Teilen dann
> halt 3 Stück brauche

Nicht gelesen oder nicht verstanden:

Michael B. schrieb:
> Die 33. LED würde ich direkt vom RP2040 steuern

von Andreas B. (ab-tools)


Lesenswert?

Michael B. schrieb:
> Andreas B. schrieb:
>> auch wenn ich von den Teilen dann
>> halt 3 Stück brauche
>
> Nicht gelesen oder nicht verstanden:
>
> Michael B. schrieb:
>> Die 33. LED würde ich direkt vom RP2040 steuern

Danke, Michael, und sorry, das hatte ich tatsächlich überlesen:
Klar, das wäre möglich, bin mir nur nicht ganz sicher, ob das "Ergebnis" 
dann identisch zu den anderen 32 LEDs ist?

Ich meine, wenn ich 32 LEDs über eine DM13A-Konstantstromquelle versorge 
und 1 direkt vom RP2040 (vermutlich dann einfach mit Vorwiderstand), 
hätte ich die Befürchtung, dass es schwierig wird die Helligkeit genau 
gleich zu bekommen.

von Norbert (der_norbert)


Lesenswert?

Andreas B. schrieb:
> Ich meine, wenn ich 32 LEDs über eine DM13A-Konstantstromquelle versorge
> und 1 direkt vom RP2040 (vermutlich dann einfach mit Vorwiderstand),
> hätte ich die Befürchtung, dass es schwierig wird die Helligkeit genau
> gleich zu bekommen.

PWM (16 Stück stehen zur Verfügung) auf den Pin und passend einstellen.

von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> dass es schwierig wird die Helligkeit genau gleich zu bekommen.

Die Helligkeit von 2 LED desselben Modells schwankt eh um 1:2, da wirst 
du den Strom durch beide doch problemlos genauer hin bekommen.

Man muss halt in der Software die eine LED anders behandeln.

von Andreas B. (ab-tools)


Lesenswert?

Michael B. schrieb:
> Andreas B. schrieb:
>> dass es schwierig wird die Helligkeit genau gleich zu bekommen.
>
> Die Helligkeit von 2 LED desselben Modells schwankt eh um 1:2, da wirst
> du den Strom durch beide doch problemlos genauer hin bekommen.
>
> Man muss halt in der Software die eine LED anders behandeln.

Verstehe, das wäre natürlich möglich das mit "Software zu fixen" und für 
diese eine LED eine andere PWM-Einstellung (ein entsprechendes Offset) 
zu wählen.

von Michael B. (laberkopp)


Lesenswert?

Andreas B. schrieb:
> Verstehe, das wäre natürlich möglich das mit "Software zu fixen" und für
> diese eine LED eine andere PWM-Einstellung (ein entsprechendes Offset)
> zu wählen.

Man muss das nicht fixen, man wählt nur den passenden Vorwiderstand für 
diese LED entsprechend dem Strom des Konstantstromtreibers.

Aber diese LED muss eine Sonderbehandlung bekommen weil ihr Zustand 
nicht per Schieberegister rausgeschoben wird sondern davon getrennt 
verUNDet mit der PWM, die zum Dimmen der DM13 verwendet wird, an einem 
PortPin ausgegeben wird.

von Andreas B. (ab-tools)


Lesenswert?

Michael B. schrieb:
> Andreas B. schrieb:
>> Verstehe, das wäre natürlich möglich das mit "Software zu fixen" und für
>> diese eine LED eine andere PWM-Einstellung (ein entsprechendes Offset)
>> zu wählen.
>
> Man muss das nicht fixen, man wählt nur den passenden Vorwiderstand für
> diese LED entsprechend dem Strom des Konstantstromtreibers.
>
> Aber diese LED muss eine Sonderbehandlung bekommen weil ihr Zustand
> nicht per Schieberegister rausgeschoben wird sondern davon getrennt
> verUNDet mit der PWM, die zum Dimmen der DM13 verwendet wird, an einem
> PortPin ausgegeben wird.

Verstanden, das ist eine Option, ja.

von Mi N. (msx)


Lesenswert?

Michael B. schrieb:
> Die Helligkeit von 2 LED desselben Modells schwankt eh um 1:2,

Wie kann man nur so einen Unfug schreiben?
Aber gut, von Dir wird nichts anderes erwartet.

von Michael B. (laberkopp)


Lesenswert?

Mi N. schrieb:
> Michael B. schrieb:
>> Die Helligkeit von 2 LED desselben Modells schwankt eh um 1:2,
>
> Wie kann man nur so einen Unfug schreiben?
> Aber gut, von Dir wird nichts anderes erwartet.

Dass DU das nicht weisst, es gar Blödsinn hältst, verwundert nicht, du 
bist ja der Honk, der LED ohne Vorwiderstand direkt an IC Ausgänge hängt 
weil er erwartet dass die den Strom schon ungefähr gleich begrenzen.


Schau halt einfach mal in ein Datenblatt statt an deine alternativen 
Wahrheiten zu glauben.

Hier sind gleicht 3 LED drin

https://www.pollin.de/p/kingbright-rgb-led-l-154a4surkqbdzgw-rot-blau-gruen-5mm-630-465-525nm-200-300-1300mcd-600-rund-121961
1
Iv (mcd) 
2
@ 20mA 
3
4
Min. Typ.
5
300 700 
6
7
8
120 300 
9
10
600 1300

Und was sagt uns 300 Min. 700 Typ. ? Max. fehlt sogar)

Dass der Helligkeitsunterschied von Exemplar zu Exemplar sogar grösser 
ist als 1:2.

Auch der Strom eines überlasteten IC-Ausgangs in Abschnürung 
unterscheidet sich übrigens von Ausgang zu Ausgang leicht mal um 1:2, 
daran angeschlossene LED können also 1:4 unterschiedliche Helligkeit 
haben.  Anders gesagt: die eine erscheint dann neben der anderen mit nur 
25% ihrer Helligkeit eher AUS als AN.

Aber das wirst du nie lernen, deine eigene Selbstüberschätzung schon 
alles besser zu wissen blockiert jeden Erkenntnisgewinn.

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.