Forum: Mikrocontroller und Digitale Elektronik kein linearer Helligkeitseindruck bei LEDs mit PWM


von Uwe Köhler (Gast)


Lesenswert?

Hallo,

ich habe folgendes Problem, um mich ein bisschen in die MC-Sache
einzuarbeiten habe ich mir gedacht baue ich eine Ansteuerung für so
eine RGB-LED.
Ich verwende dazu einen AT90S8515 (wahrscheinlich ziemlich
überdimensioniert, aber den hab ich halt grade da)
Ich habe mir jetzt 3 Software-PWMs gebastelt (ich weiß es gibt
Hardware-PWMs, aber ich wollte das mal versuchen).
Wenn ich da jetzt die RGB-LED drann hänge, oder auch irgendeine andere
LED, dann ergibt sich nicht das gewünschte Ergebnis.
Wenn ich die Pulsweite ändere (kann ich am Oszi nachvollziehen) dann
ändert sich lange nichts an der LED (sie leuchtet voll) Nur in einem
sehr kleinen Bereich ändert sie dann ihrer Helligkeit.

Eigentlich dachte ich aber, dass wenn ich das Verältnis der PWM auf 50%
stelle auch die LED nur halb an ist. Eine Änderung tritt aber nur bei
den letzten 10-15% ein (je nachdem wie ich die LED anschließe halt bei
10% High oder 10% Low)
Ich habe folgende Anschlussarten versucht:
5V - R - LED - MC
So wie ich die LED auch anschließen würde wenn ich sie nur an und
ausmachen wollte

Außerdem

MC - R - LED - Masse

aber auch folgende Variante

5V - NPN - R - LED - Masse
und an die Basis vom NPN über R das PWM Signal

Immer das gleiche Ergebnis

Ist das Prinzipbedingt, sprich, liegt das an der LED und das ganze kann
so gar nicht gehen?
Habe ich etwas falsch gemacht, beim Anschließen der LED?
Kanns auch an meinen PWM-Signalen liegen?
Sind die vielleicht zu schnell oder zu langsam?
Ich habe mal verschiedene Vorteiler beim Timer versucht.

Für Tipps und Anregungen wäre ich dankbar.

Ach so ich schreibe in Assembler.

von Thomas O. (Gast)


Lesenswert?

Hallo,

schau dir mal das Datenblatt der LED an da sieht man das sie nicht
linear mit der Spannungserhöhung mehr Strom ziehen sondern ab einer
gewissen Spannung der Strom ziemlich stark hochgeht.

Würde mal die Led mit einem Poti ganz normal an 5V betreiben und einen
Voltmeter mit dranhängen. Dann kannst du dir ja notieren bei welcher
Spannung sie zu leuchten beginnt und ab welcher Spannung es nicht mehr
heller wird.

Diese Spannungen kannst du dann versuchen mit deiner Software PWM
nachzumachen. Also einfach das Multimeter an deinen PWM Pin und
Spannung messen.

von Sebastian (Gast)


Lesenswert?

Welche PWM-Frequenz benutzt du?

von Quark (Gast)


Lesenswert?

Hi,
@Thomas O.
Du weißt (da bin ich mir sicher) schon das PWM auf einem
Spannungspotential gepuslt ist.
Was meinst Du dann mit der Spannung??? Die ist bei PWM möglichst immer
gleich, das ist der Witz bei PWM.
Grüße
Quark

von Thomas O. (Gast)


Lesenswert?

Hallo,

die höhe der Spannungsimpulse ist zwar immer gleich aber effektiv ist
die Spannung je nach Tastverhältniss ganz anderst. Es wird also
sozusagen ein Schnitt gebildet.

Angenommen der AVR spuckt 5 Volt aus und ich habe ein PWM mit einem
Verhältniss 50:50 dann kommen da nur 2,5 Volt raus. Bei 25:75 z.b  nur
1,25 Volt, man kann auch einen Wiederstand und Kondensator an den Pin
hängen um das ganze zu glätten, dann ist die Messung des Multimeters
bestimmt auch besser / ruhiger.

Deswegen habe ich den Versuch mit dem Poti vorgeschlagen, wenn du z.b.
weisst das die LEd bei 1,2 Volt anfängt zu leuchten und bei 2,5 Volt
tut sich nichts mehr dann kannst du deine PWM daraufauslegen denn es
würde dann ein Tastverhältniss zw. 25:75 und 50:50 reichen also
25%-50%.

von Thomas Burkhardt (Gast)


Lesenswert?

Hi,

@Thomas O.:

sicherlich ist die mittlere abgegebene Leistung abhängig vom
Tastverhältnis. Um allerdings eine mittlere Spannung zu sehen, müsste
schon ein integrierendes Bauteil angeschlossen sein -> Kondensator,
eine Art mit PWM eine veränderliche Spannung zu erzeugen.
Beim Betrieb der LED mit PWM ist es aber nicht das Ziel die Spannung
- und damit den Strom durch die LED - zu ändern. Diese wird tatsächlich
in nur in den beiden Zuständen aus und an betrieben. Alles andere hat an
der LED wenig Sinn, da es das Ziel ist die Leistung zu vermindern, die
ganze Sache aber dennoch bei optimalem Strom zu betreiben.

von Thomas O. (Gast)


Lesenswert?

Hallo,

dachte halt das es primär um die Helligkeitregelung  geht, denn bei den
2mA einer Low Current Led spielt es doch wirklich keine Rolle und selbst
für mehrere Leds könnte man nen kleinen Wald und Wiesen BC5xx nehmen um
den Port nicht zu überlasten.

Denke du spielt darauf hinaus an das die Leistung nicht verbraten wird
wie bei einem Spannungregler sonder durch die Ein-Aus Phasen die
Leistung vermindert wird ohne sie zu verbraten(z.b. Schaltnetzteil)

von Thomas O. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

auf dem Bild sieht man die Stromaufnahme der LED im Vergleich zur
Spannung und da ist es zw. 1,85V und 2,2V ziemlich linear, wie die
dazugehörige Helligkeit ist kann ich nicht sagen denke aber das sie bis
zu den 2,2 Volt ziemlich identisch ansteigt.

Seshalb meinte ich halt hier würde eine eine geringere PWM reichen also
zw. 37 und und 44% dann müsste der Helligkeitsanstieg sehr linear sein.
Ansonsten würde sich ja bis ca. 37% nichts tuhen dann bis 44% wirds
stetig heller und ab 44% bemekrt man wieder keine
Helligkeitssteigerung.

von Thomas Burkhardt (Gast)


Lesenswert?

schön, ne Diodenkennlinie :)

Ziel der Helligkeitssteuerung durch PWM ist es, die LED immer an einem
durch Spannung und Strom (gemäß Vorwiderstand) festgelegten
Arbeitspunkt zu betreiben (-> also genau ein Punkt auf der Kennlinie).
Eine Verminderung der Helligkeit wird nicht durch Verminderung des
Stromes, sondern durch das Tastverhältnis - also die Zeit, in der die
LED an bzw. aus ist - realisiert.

Klar entspricht dies "rechnerisch" einer Verminderung des mittleren
Stromes, aber es ist nicht die LED, die da integriert, sondern das Auge
des Betrachters :)

von Winfried (Gast)


Lesenswert?

Eine passenden Vorwiderstand benutzt du aber für die LED?

Wenn du dann bei 50 % Tastverhältnis die gleiche Helligkeit hast wie
bei 100% und du die Diode im zulässigen Bereich betreibst, dann wäre
das ein für mich nicht erklärbares Phänomen.

von Wolle (Gast)


Lesenswert?

Es geht um "Mehrfarben-LED", richtig ?
Wenn alle Anschlüsse an einem Widerstand hängen.........???
Also für jede "Farbe" einer.
Bei den meisten RGB-LEDs sind 2(zwei)Blau-Dioden eingebaut!!
Entsprechende Spannungen + Ströme müssen daher berücksichtigt werden.

Warum ??
Das menschliche Auge ist für die diversen Farben unterschiedlich
empfindlich und benötigen daher mehr oder weniger "Helligkeit" !!

von Malte Marwedel (Gast)


Lesenswert?

Ich habe auch mal mit einem MCU eine LED per PWM geregelt und das
Ergebnis war ähnlich wie das oben beschriebene. Mein
Erklärungsversuch:
Bei einer Reduzierung des Tastverhältnis (Ein:Aus) von 100:0 auf 99:1
reduziert sich die die Helligkeit um gerade mal 1%. Die 1% Helligkeit
mehr oder weniger sind kaum (wenn überhaupt) Wahrnehmbar. Beträgt das
Tastverhhältnis 2:98 und wird es auf 1:99 reduziert, so ist die LED nur
noch 50% solange an wie vorher, also halbiert ein minnimale Änderung des
Tastverhälnisses mal eben die Helligkeit.
Das Ganze erinnert mich irgendwie an lineare und logarithmische Potis.

von ---- (Gast)


Lesenswert?

Mit gleicher Argumentation könnte man also auch argumentieren:
von 100:0 auf 99:1 ist eine Änderung der (hier:) Auschaltzeit von 0%
auf 1%, was einem Faktor von 'unendlich' entsprechen würde. Damit
wäre die Änderung von 100:0 auf 99:1 deutlich größer als von 99:1 auf
98:2.
Na diese Argumentation zieht nicht und ist falsch.

Das einzige was 'logarithmisch' an der ganzen Sache ist, ist die
Empfindung der Helligkeit im Auge. (Wurde hier aber auch schon mehrfach
diskutiert).

PS: Habe schon erfolgreich LEDs per PWM gedimmt (z.B.
Hintergrundbeleuchtungen von LCDs...) von 0-100% und dabei nicht den
oben beschriebenen Effekt beobachtet, daß nur einen kleinen
Dimmbereicht von wenigen relavanten Prozent gibt...

----, (QuadDash).

von beta-frank (Gast)


Lesenswert?

Das Auge arbeitet nicht nur allgemein logarithmisch bei der
Helligkeitsempfindung, sondern nimmt gepulstes Licht heller war als
konstantes Licht (bei jeweils gleicher mittlerer Leistung). Frag mich
nicht genaueres, mir war es nur bei ähnlichen Experimenten mit LED &
PWM aufgefallen und ein Prof mit einschlägiger Spezialisierung hat mir
das so beantwortet.

von Stefan Kleinwort (Gast)


Lesenswert?

Der Zusammenhang zwischen Leistungsaufnahme der LED und visueller
Wahrnehmung ist nicht linear, siehe u.a. auch:

http://www.mikrocontroller.net/forum/read-1-87581.html#87590

Selber ausprobiert: quadratischer Zusammenhang funktioniert prima.
Also:
100% an: 100% PWM
50% an:   25% PWM
10% an:    1% PWM
1% an:  0,01% PWM

Logarythmisch kommt wahrscheinlich zu ähnlichen Ergebnissen, ist aber
wesentlich schwieriger zu berechnen (vor allem in reinem Ass).

Deine Ansteuerung ist genau richtig:
VCC - R - LED - mc
Nur wenn Du mehr als ca. 5-8mA Strom für die LED brauchst (oder sehr
viele LEDs betreibst), solltest Du noch einen T dazwischenhängen.


Viel Spass, Stefan

von Reinhold Rose (Gast)


Lesenswert?

Hi,
Schaut mal hier nach -> http://www.ejberg.dk/ledfade2/index.html
Mikael benutzt zum faden den 16-bit Timer und Tabellen und hat
das auch in seinem PDF erklärt.

Gruß
Reinhold

von MartinK (Gast)


Lesenswert?

An Stefan Kleinwort

Mit welcher PWM-Frequenz hast du den Versuch gemacht?

von Uwe Köhler (Gast)


Lesenswert?

Hallo,

vielen Dank für die vielen Vorschläge.
Ich werde jetzt mal versuchen das mit der quatratischen Regelung
einzubauen. Mal sehen ob das gelingt. Im Moment habe ich leider eher
wenig Zeit. Aber ab dem 20.10. kann ich mich mal vermehrt damit
beschäftigen.

Zum eigentlichen Projekt noch mal die Antworten auf ein paar
aufgekommene Fragen:

Am Ende handelt es sich um eine Mehrfarb-LED.
So wie ich das sehe muss ich auch Transistoren nehmen, weil die LED nur
2 Massepins hat und ich darüber nicht die 3 Farben steuern kann. und ich
nicht weiß ob es sinnvoll ist die 5V aus dem MC zu ziehen.
Natürlich hat auch jede Farbe ihren eigenen (auf die im Datenblatt
angegeben Spannung ausgelegten) Widerstand (obwohl ich so das Gefühl
hab Blau ist viel heller - aber das ist ja wieder subjektiv)

Ich habe mehrere Frequenzen versucht indem ich immer den Vorteiler vom
Timer anders gesetzt habe. Es führte immer zum gleichen ergebnis.
Zur Zeit nehm ich eher eine kleine Frequenz (habe mir jetzt nicht die
Mühe gemacht die auszurechnen)

Insgesamt funktioniert mein PWM so:
Timer0 läuft durch und löst Interrupt aus. Dort zähle ich eine Variable
hoch und vergleiche sie mit den eingetellten Werten für die PWM. Solange
die nicht erreicht sind bleibt das Ding auf 0 wenn sie erreicht werden
geht es auf 1. Beim Nulldurchlauf der Variable werden alle Kanäle auf 0
gesetzt.
So wie ich das auf meinem Oszi sehe gibt das ein anständiges Signal.
Der Vorteil ist, ich kann die PWMs auf die Pins legen wo ich sie gerne
hätte.

Ich habe das jetzt mal durchgemessen. Wenn ich das PWM Tastverhältnis
ändere, ändert sich auch die Spannung an der LED (zum Testen nehm ich
mal einfach ne billige rote Led). Aber ich denke das muss ja so sein,
weil die Spannung vom durchfließenden Strom abhängt.
Ich habe nur schon mehrmals gelesen, dass man die LEDs nicht über die
Spannung sondern über den Strom dimmen sollte. Dieses Konzept leuchtet
(*hihi) mir aber noch nicht so richtig ein.

von Daniel Thiele (Gast)


Lesenswert?

Mein Erklärungsversuch: Die Zeitkonstante der LED ist sehr klein, du
wirst mit der PWM-Frequenz nicht in die Nähe dieser Zeitkonstante
kommen. Du kannst diese Zeitkonstante aber vergrößern: Häng doch mal
einen kleinen Kondensator (z.B. 1nF) an die LED. Sie dimmt jetzt sehr
schön linear.
Viel Erfolg.

von Winfried (Gast)


Lesenswert?

@Uwe: Dazu hat man den Widerstand in Reihe. Der fungiert als
Spannungs-Stromwandler. Das Problem ist, dass du Spannungsmäßig es kaum
hinbekommst, den richtigen Arbeitspunkt der LED zu erwischen, weil sehr
kleine Spannungsänderungen zu enormen Stromänderungen führen. Und für
die Leuchtstärke interessiert vor allem die durchschn. Stromstärke, die
durch die LED fließt. Außerdem ist die Spannung an der LED noch
temperaturabhängig und streut von Exemplar zu Exemplar, weshalb man
LED's auch nicht einfach parallel schalten kann.

von Markus (Gast)


Lesenswert?

Könnte das mit dem quadratischen Zusammenhang vielleicht daran liegen,
daß es um die Leistung und nicht (alleine) um die Spannung geht?

http://www.mikrocontroller.net/wiki/PWM#Leistung

von Winfried (Gast)


Lesenswert?

Also ich sehe da einen linearen Zusammenhang, wenn es um Leistung geht:
100 % an = 100 % Leistung. 50 % an = 50 % Leistung.  Natürlich darf man
die Leistung nicht mit dem durchschn. Spannungswert berechnen, wie im
Wiki ja schon angedeutet.

Ist jetzt ein Schnellschuss, keine Gewähr auf Richtigkeit.

Ich glaube auch, dass es vor allem das Auge ist, was da nichtlinear
wahrnimmt.

@Malte: "so ist die LED nur
noch 50% solange an wie vorher, also halbiert ein minnimale Änderung
des
Tastverhälnisses mal eben die Helligkeit."

Klingt auf den ersten Blick überzeugend, aber du musst immer die ganze
Periode betrachten, und da ändert sich die durchschnittliche Leistung
nur wenig. Am Auge kommt nur der Durchschnitt an.

von Stefan Kleinwort (Gast)


Angehängte Dateien:

Lesenswert?

Hi Martin K,

habe mal gesucht und tatsächlich noch was gefunden - ist schon eine
Weile her ...
Das Ganze lief auf einem 68HC11, insgesamt wurden damit bei 40 LEDs die
Helligkeit gedimmt. Der Algorythmus lief ungefähr so:

LED-Helligkeit (8 Bit) * LED-Helligkeit (8-Bit) -> PWM-Wert (16 Bit)
PWM-Wert 5 mal shift-rechts -> Wertebereich 0 ..2047

4 LED-PWM-Werte wurden gleichzeitig auf Spaltentreiber einer LED-Matrix
für 1024ms geschaltet (Auflösung 0,5us * 2048 Max-PWM). Das Ganze wurde
für 10 LED-Reihen wiederholt -> ca. 10ms Zykluszeit, also 100Hz
Wiederholfrequenz.

Damit wurden auf einem Lichtmischpult die Helligkeit der
Lampen-Ausgänge dargestellt. Die PWM-Auflösung war wie gesagt 1/2048,
optisch waren keine "Treppchen" zwischen den einzelnen
Helligkeitsstufen zu sehen, also ein "analoger" Seh-Eindruck.

Spasseshalber packe ich mal den Source dazu, ich bin aber nicht sicher,
ob hier noch jemand was mit dem HC11-Code anzufangen weiss ;-)

Viele Grüße, Stefan

von Micha W (Gast)


Lesenswert?

nabend

machen wir es kurz wie Winfried am 10.10 schon richtig bemerkt hat
"Und für die Leuchtstärke interessiert vor allem die durchschn.
Stromstärke, die durch die LED fließt. "
und alle haben auch schon festgestellt das die spng kennlinie nicht
linear ist   also mit spannung steuern alleinen gehts schief weil die
bauteiltolleranzen in bezug auf die spannung sehr star schwanken   das
einzigste das hilft ist eine stromquelle die du dann über deine pwm
steuerst.  oder  die kennlinei jer einzellnen led ausmessen und dann
als tabelle im hintergrund ablegen  aber das ist mit normalen mitteln
sehr sujektiv  also unsinnig. also siehe stromquelle  das thema is auch
in der letzten ausgabe von elektor oder der elv auseinandergenommen
worden  wer sich noch mal belesen will
gute nacht
Micha

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.