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.
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.
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
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%.
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.
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)
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.
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 :)
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.
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" !!
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.
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).
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.
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
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
An Stefan Kleinwort Mit welcher PWM-Frequenz hast du den Versuch gemacht?
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.
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.
@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.
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
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.