www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LED-Helligkeit in Abhängigkeit von der Pulsweite


Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

nach meinen ersten Versuchen habe ich festgestellt, dass die Helligkeit 
der LED nicht direkt proportional zu der Pulsweite ist. Zumindest kommt 
es mir so vor. Wahrscheinlich ist das menschliche Auge daran "schuld", 
weil es bei schwach leuchtender LED feinere Helligkeitsabstufungen 
registrieren kann?

Jedenfalls zieht dies einen unschönen Effekt nach sich. Bei einem 
linearen Anstieg der Pulsweite wird die LED zunächst sehr schnell hell 
und dazu noch sichtbar stufenweise. Danach nimmt die Helligkeit 
scheinbar immer langsamer zu. Nach Gefühl würde ich einen Logarithmus 
vermuten.

Wie kann ich diesen beiden Effekten entgegenwirken?

Meine Ansätze wären:

 - höhere PWM-Auflösung, um die Abstufungen im dunkleren Bereich
   zu erhöhen

 - eine LUT, die das lineare Verhältnis von Pulsweite und
   Helligkeit herstellt

Wobei mit die Idee mit der LUT nicht ganz effektiv vorkommt. Müsste doch 
sicherlich etwas eleganteres geben. Außerdem muss man die 
Proportionalitätswerte erstmal irgendwie herausfinden.

Autor: Nullpainter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, das Auge hat eine Logarithmische Kennlinie. Die Leute geben 
standardmaessig zuviel Strom auf die LED. Bei einer 20mA LEd genuegen 
1-2mA, bei einem 70ma Backlight genuegen 5-10mA.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Statt LUT kannst du die Kennlinie mit ein paar Stützpunkten annähern, 
und dazwischen linear interpolieren.
Und zumindest bei software-pwm kannst du die Auflösung selber 
modifizieren, ist ja nicht vorgeschrieben, daß das Tastverhältnis direkt 
proportional zu dem PWM Wert ist.

Codebeispiele für beides gibts hier:
Beitrag "RGB-Moodlight auf ATTiny2313 mit RC5-Fernbedienung"

/Ernst

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Maxim (Gast)

> - höhere PWM-Auflösung, um die Abstufungen im dunkleren Bereich
>   zu erhöhen

Ist meist Overkill.

> - eine LUT, die das lineare Verhältnis von Pulsweite und
>   Helligkeit herstellt

>Wobei mit die Idee mit der LUT nicht ganz effektiv vorkommt. Müsste doch

Warum? Das ist doch ganz einfach. UNd vor allem musst du ja nicht eine 
riesige Tabelle mit 256 Einträgen machen. 16 bis 32 reichen.

>sicherlich etwas eleganteres geben. Außerdem muss man die
>Proportionalitätswerte erstmal irgendwie herausfinden.

Das ist leicht.

Die einzelnen Werte unterscheiden sich um den kosntanten Faktor X, für 
den gilt

für eine 8-Bit PWM. N ist dabei die gewünschte Anzahl Stufen. Umgeformt 
heisst das

Die einzelnen PWM-Stufen errechnet man dann einfach, indem man 256 
fortlaufend durch X teilt.

MFG
Falk

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mist, wieso klappt das mit den Formeln nicht?!! :-(

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... Beim direkt-aufruf von den Formelbildern kriege ich

503 Service Unavailable
 The server is temporarily busy, try again later!

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Hab zwar nicht das selbe Problem, aber es interessiert mich trotzdem.

@Falk: kannst du das nochmals erläutern? Habs noch nicht ganz begriffen.
Sagen wir: wir haben eine 8bit PWM und wir möchten 16 Helligkeitsstufen, 
wie sind nun die Tastverhältnisse zu berechnen?

Autor: Nullpainter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wir moechten logarithmisch teilen. Dh die Werte sind dann um den Faktor 
exp(log(256)/16) verschieden. Ohne einen Rechner zu haben... Ich fang 
mal an : 1,2,4,8,16,32,64,128,256, oops sind erst 9 stueck. Naja so in 
der Richtung.

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Angenomen ich möchte 100 Abstufungen mit einem 8-Bit-PWM haben.

x=1.057

Die dunkelste Stufe wäre dann also 1*1.057?
Und was sagt mir jetzt dieser Wert?

Ich erkenne schon, dass man der logarithmischen Wahrnehmung des Auges 
mit einem exponentiellen Anstieg der Spannung an der LED entgegenwirken 
kann. Aber ich verstehe noch nicht ganz, wie man das umsetzen könnte.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Wurst (Gast)

>Sagen wir: wir haben eine 8bit PWM und wir möchten 16 Helligkeitsstufen,
>wie sind nun die Tastverhältnisse zu berechnen?

OK.

8-PWM mit 256 linearen Stufen.

Die soll unterteilt werden in 16 nichtlineare Stufen, wobei der RELATIVE 
Abstand benachbarter Stufen konstant sein soll. Also

S1*X=S2
S2*X=S3
S3*X=S4
S4*X=S5
S5*X=S6
S6*X=S7
S7*X=S8
S8*X=S9
S9*X=S10
S10*X=S11
S11*X=S12
S12*X=S12
S12*X=S14
S14*X=S15
S15*X=S16

Nach sechzehn Stufen muss 256 rauskommen. Bis dahin haben wir aber 16 
mal mit x multipliziert.

umgestellt nach X

(X = 16te Wurzel aus 256/S1)

Wenn wir S1 mit 1 annehmen ergibt sich für X 1,41.

Kleiner praktischer Tip. Auf den meisten Taschnrechnern gibt es keine 
Funktion für die N-te Wurzel. Wer aber in der Schule nicht nur Kreide 
holen war weiss, dass gilt

( N-te Wurzel aus X = X hoch (1/N) )

Auf dem Windows-Taschenrechner geht das so (umschalten auf 
wissenschaftliche Darstellung)

256
x^y
16
1/x
=

Die PWM-Werte errechnen sich einfach nach obiger Formel.

S1 = 1
S2 = x*S1 = 1,41*1
...

Die konkreten Zahlen sind hier (gerundet) 
1,2,3,4,6,8,11,16,23,32,45,64,91,128,181,256

MfG
Falk

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War in der Schule auch nicht nur Kreide holen, aber nach deiner ersten 
Erklärung war mir nicht ganz klar die du das meinst, aber jetzt hab 
ichs!

Danke!!

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und 1.41 muss ich ja wiederum in Spannung umsetzen. Also lasse ich z.B. 
1.41uS lang die LED an und danach 256-1.41uS aus?

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, das ist das Verhältniss, wie Falk oben beschriben hat:

zweit hellste Stufe ist also 181, das heisst 181 an, 256 aus.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Maxim (Gast)

>Und 1.41 muss ich ja wiederum in Spannung umsetzen. Also lasse ich z.B.
>1.41uS lang die LED an und danach 256-1.41uS aus?

1.41 ist der Faktor zwischen den PWM-Einstellungen! Die Pulsbreite hängt 
von deinem PWM-Takt ab!
Bei ner LED sind 100 Hz PWM-Frequenz ausreichend, also brauchst du 25,6 
kHz PWM-Takt.

MFG
Falk

Autor: Nullpainter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau.

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau hab ich mich vertan:
181 an
256-181=75 aus

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aha, jetzt wird es nochmals verständlicher.

Ich betreibe mein Versuchsaufbau mit dem standard PWM-Modus des ATMega8.

Die dunkelste Einstellung, nämlich 1 Takt ein und 255 Takte aus und die 
zweitdunkelste Einstellung (2 Takte an und 254 aus) unterscheiden sich 
ziemlich extrem. Wenn ich jetzt eine 4-Bit-Auflösung nehme, habe ich 16 
Abstufungen. Somit habe ich genügend Spielraum, um eine lineare 
Abstufung zu realisieren. Das hat ja aber keine Auswirkungen auf die 
Tatsache, dass der Unterschied zwischen 1 und 2 Takten so stark ist. Um 
das auszubessern, müsste ich zwischen den Stufen 1 und 2 noch andere 
einbauen.

Da 16 Abstufungen aber wenig sind (100 sollten es schon sein), muss ich 
zwangsläufig auf eine höhere PWM-Auflösung umsteigen.

Das war jetzt mein Gedankengang zum mitlesen.
Ich hoffe, ihr versteht, was ich meine und es stimmt so.

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Maxim (Gast)

>Die dunkelste Einstellung, nämlich 1 Takt ein und 255 Takte aus und die
>zweitdunkelste Einstellung (2 Takte an und 254 aus) unterscheiden sich
>ziemlich extrem.

Dann musst du deine PWM auf 9 oder 10 Bit umkonfigurieren. Mit welchem 
Takt betreibst du deine PWM? Es könnte nämlich auch sein, dass bei SEHR 
hohen PWM-Systemtakten (>1MHz) die LED zu langsam schaltet und somit bei 
der PWM-Einstellung von 1 Takt gar nicht richtig leuchtet, bei zwei dann 
aber schon.
>Da 16 Abstufungen aber wenig sind (100 sollten es schon sein), muss ich
>zwangsläufig auf eine höhere PWM-Auflösung umsteigen.

Genau. Das hat aber weniger mit der Anzahl nichtlinearer Stufen als mit 
der Empfindlichkeit des Auges zu tun.

MFG
Falk

Autor: Jankey (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du erkennst mit Freiem Auge bei Einer LED noch 70uA ( zb einer Osram )

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
To whom it may concern

LED-Fading

MfG
Falk

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.