Forum: Mikrocontroller und Digitale Elektronik LED Fading comfort Table Generator - eure Meinung dazu bitte


von Stefa N. (exa)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,
ich spiele gerade mit LED-Fading herum und musste feststellen, dass die 
manuelle Table-Erstellung ziemlich lästig ist. Aus diesem Grunde habe 
ich mir eine EXCEL-Tablelle mit VBA-Macro erstellt, welche den Table 
komfortabel erzeugt und gleich formatiert.
Die Berechnung stützt sich auf die Diskussionsseite zum LED-Fading 
(http://www.mikrocontroller.net/articles/Diskussion:LED-Fading).
Man muss nur die Parameter in die grün hinterlegten Felder eingeben und 
der komplette Table samt Deklaration wird generiert.
Der Table wird automatisch am "{"-Zeichen ausgerichtet, damit die Werte 
schön untereinander stehen. Ein Klick auf den Button "Copy to Clipboard" 
schiebt das ganze in die Zwischenablage und man muss es nur noch ins 
Programm einfügen.
Das Macro ist eigentlich ganz simpel, das meißte ist Fehlerbehandlung 
bei falschen Eingaben.
Ich wollte euch das Ganze nicht vorenthalten, falls jemand Lust hat kann 
er die Datei ja zum Artikel hinzufügen.
Ich hätte gerne Feedback, Kritik, Wünsche von euch.
Viel Spaß damit
EXA

von Vuvuzelatus (Gast)


Lesenswert?

Uein, Umin, Umax? Ich sehe nicht, inwiefern diese Parameter für die 
Berechnung der Tabelle relevant sind.

von Stefa N. (exa)


Lesenswert?

Wenn man die LED nicht von 0V - Vss, sondern nur in einem bestimmten 
Bereich dimmen möchte.
Interessant z.B. für LED-Cluster, die durch die Reihenschaltung der LEDs 
eine höhere Mindestspannung brauchen als eine einzelne LED.
MfG
EXA

von Vuvuzelatus (Gast)


Lesenswert?

OK, dadurch kann man LEDs oder LED-Cluster an "falschen" (zu hohen) 
Spannungen betreiben. Wenn ich das richtig verstanden habe.

Leider kenne ich mich mit Excel gar nicht aus. Wie kann ich mir denn den 
Quellcode davon anzeigen lassen?

von Stefa N. (exa)


Lesenswert?

Vuvuzelatus schrieb:
> OK, dadurch kann man LEDs oder LED-Cluster an "falschen" (zu hohen)
> Spannungen betreiben. Wenn ich das richtig verstanden habe.

FALSCH. Wenn du die LED direkt über einen Vorwiderstand am PWM-Ausgang 
betreibst kannst du die LED zwischen 0V und 5V dimmen. "Falsche" oder 
"zu hohe" Spannungen kannst du physikalisch garnicht einstellen.
Falls du jetzt die LED nicht ganz auf 0V bzw. 5V dimmen willst stellst 
du das einfach mit Umin und Umax ein. Somit wird die LED nicht von 0V - 
5V gedimmt, sondern nur im dem Bereich Umin - Umax.
Du verkleiners einfach den Bereich in dem gedimmt werden soll.
Praktisches Beispiel:
Du hast 5V Versorgungsspannung für die Logik und 12V für einen LED 
Cluster.
Der LED Cluster darf mit Spannungen von 8V - 10V betrieben werden.
Der LED Cluster wird über eine FET vom Controller gesteuert.
Wenn du jetzt Uein=12V Umin=0V und Umax=12V einstellst bringt dir das 
Dimmen zwischen 0V und 8V garnix weil da nix leuchtet und bei 10V-12V 
wird der Cluster überlastet und er geht drauf.
Gibst du jetzt Uein=12V Umin=8V und Umax=10V ein kannst du den Cluster 
schön zwischen 8V und 10V dimmen.

> Leider kenne ich mich mit Excel gar nicht aus. Wie kann ich mir denn den
> Quellcode davon anzeigen lassen?

Drücke ALT+F11

Das ganze ist übrigens mit EXCEL 2003 erstellt und getestet.
MfG
EXA

von Falk B. (falk)


Angehängte Dateien:

Lesenswert?

@  Stefa N. (exa)

>FALSCH. Wenn du die LED direkt über einen Vorwiderstand am PWM-Ausgang
>betreibst kannst du die LED zwischen 0V und 5V dimmen. "Falsche" oder
>"zu hohe" Spannungen kannst du physikalisch garnicht einstellen.

Ja.

>Falls du jetzt die LED nicht ganz auf 0V bzw. 5V dimmen willst stellst
>du das einfach mit Umin und Umax ein. Somit wird die LED nicht von 0V -
>5V gedimmt, sondern nur im dem Bereich Umin - Umax.

Kann man machen, aber dazu braucht man auch die physikalische 
Timerauflösung, sonst wird es Augenwischerei.

>Du hast 5V Versorgungsspannung für die Logik und 12V für einen LED
>Cluster.
>Der LED Cluster darf mit Spannungen von 8V - 10V betrieben werden.
>Der LED Cluster wird über eine FET vom Controller gesteuert.
>Wenn du jetzt Uein=12V Umin=0V und Umax=12V einstellst bringt dir das
>Dimmen zwischen 0V und 8V garnix weil da nix leuchtet und bei 10V-12V
>wird der Cluster überlastet und er geht drauf.

Quark. Ein LED-Cluster hängt per Vorwiderstand oder 
Konstantstromquelle an seiner Betriebsspannung. Der FET schaltet nur 
EIN/AUS, da wird NICHTS linear gesteuert. Und mit PWM kann man hier 
ebenso wie eine normale LED direkt am Portpin von 0-100% durchdimmen. Da 
geht weder ein Bereich verloren noch was kaputt. Wer das nicht glaubt 
lese mal den Artikel PWM. UNd wer es immer noch nicht glaubt, der 
teste es praktisch.

>Gibst du jetzt Uein=12V Umin=8V und Umax=10V ein kannst du den Cluster
>schön zwischen 8V und 10V dimmen.

Quark die 2. Der LED-Cluster wird nicht über irgendeine Spannung gedimmt 
sondern das TASTVERHÄLTNIS!!! Damit wird die MITTLERE Spannung 
verändert. Die Lichtpulse erfolgen aber IMMER mit 100%, logisch.

Ergo. Ich sehe wenig Vorteile in dieser Exceltabelle. Das Original im 
Artikel LED-Fading reicht. Wenn gleich die Formatierung als C-Code 
fehlt.

MfG
Falk

P S Geht in meinem alten Excel 97 nicht, Fehlermeldung siehe Anhang.

von Vuvuzelatus (Gast)


Lesenswert?

>Wenn du jetzt Uein=12V Umin=0V und Umax=12V einstellst bringt dir das
>Dimmen zwischen 0V und 8V garnix

WIE BITTE? Eine beispielsweise 1:5 PWM mit der mittleren Spannung 2 V 
hat einen völlig anderen Effekt als eine Gleichspannung von 2 V. 
Selbstverständlich bleibt der LED-Cluster bei 2 V Gleichspannung dunkel, 
aber doch nicht bei der PWM, sondern da leuchtet er (bei genügend hoher 
PWM-Frequenz) mit just 1/5 seiner vollen Helligkeit. Das ist doch gerade 
der Clou an der PWM. Wie von Falk schon erklärt.

von Stefa N. (exa)


Lesenswert?

Wie gesagt bin noch am spielen ...
Ich muss zugeben das ist mein erstes Projekt mit PWM, bin da also noch 
nicht so bewandt damit ...
Die Timerauflößung wird doch im Feld 'PWM BIT' abgefragt. Beispielsweise 
bei Eingabe 10 --> Auflößung = 2^10 oder versteh ich dich falsch?

Wenn ich die Tabelle mit den Angaben Uein=5V Umin=1V Umax=4V erstellen 
lasse, kann ich das am Ausgang auch nachmessen. Da kommen auch 1-4V 
Effektiv raus.

Mein Problem ist folgendes: Der LED Cluster darf mit einer Spannung von 
ca. 8-10V betrieben werden und soll via PWM gedimmt werden. Ich habe 12V 
zur Verfügung. Ich dachte nun ich könnte die Spannung nun mittels PWM 
auf Effektivwerte zwischen 8V und 10V begrenzen und das ganze so dimmen.

Wie gesagt meine erste PWM, wo liegt der Denkfehler?

von Falk B. (falk)


Lesenswert?

@  Stefa N. (exa)

>Die Timerauflößung wird doch im Feld 'PWM BIT' abgefragt. Beispielsweise
>bei Eingabe 10 --> Auflößung = 2^10 oder versteh ich dich falsch?

WO?

>Wenn ich die Tabelle mit den Angaben Uein=5V Umin=1V Umax=4V erstellen
>lasse, kann ich das am Ausgang auch nachmessen. Da kommen auch 1-4V
>Effektiv raus.

Im Mittel. Das ist ein Unterschied.

>Mein Problem ist folgendes: Der LED Cluster darf mit einer Spannung von
>ca. 8-10V betrieben werden und soll via PWM gedimmt werden.

Welcher? Datenblatt? Link?

Siehe Netiquette.

von Vuvuzelatus (Gast)


Lesenswert?

Mannmannmann...

Dein LED-Cluster braucht einen /Vorwiderstand./ Der erfüllt die Aufgabe, 
aus den 12 V die Spannung zu machen, bei der sich Dein LED-Cluster 
wohlfühlt, also z. B. 9 V. Die fehlenden 3 V fallen am Vorwiderstand ab. 
Die Größe des Vorwiderstands berechnest Du nach R = U/I mit U = 3 V und 
I = der Strom, den der Cluster zieht.

Mit der PWM kannst Du ihn dann nach Herzenslust von "ganz schwachem 
Glimmen"  (1) bis "volle Power" (255) dimmen. Oder auch nur von 20 % bis 
100 %, wenn er nicht so dunkel werden soll. In diesem Fall musst Du Umin 
in Deinem Programm auf einen Wert > 0 setzen.

Ein besondere Situation liegt vor, wenn Du auf den Vorwiderstand 
verzichten wolltest. Das geht unter Umständen. 12 V Gleichspannung 
darf der Cluster natürlich nie abbekommen, aber eventuell verträgt er 
eine PWM mit der Schaltspannung 12 V und der mittleren Spannung 9 V (im 
Datenblatt findet man Angaben dazu). Dann darf das PWM-Tastverhältnis 
einen bestimmten Wert nie überschreiten, z. B. 75 %. In diesem Fall 
müsstest Du Umax in Deinem Programm auf einen Wert < Uein setzen. Die 
sichere und empfohlene Methode ist jedoch die mit dem Vorwiderstand.

Jetzt klarer?

von Stefa N. (exa)


Lesenswert?

> WO?
In der EXCEL Tabelle Feld B6 da wo "<-- PWM Auflösung [Integer]" daneben 
steht.

> Im Mittel. Das ist ein Unterschied.
Ich war der Meinung Ueff = Um oder nicht?

> Welcher? Datenblatt? Link?
Reichelt CLUSTER 50 RT
http://www.reichelt.de/index.html?;ACTION=7;LA=3;OPEN=0;INDEX=0;FILENAME=A500%252FCLUSTER50RT%2523KIN.pdf;SID=11Te-GNn8AAAIAACPYGHc6f6214ec310db7de0f06c988c4d5d219

von Kenner (Gast)


Lesenswert?

@Stefa N
Ich find das Excelsheet ok, besonders wenn man mal andere Parameter 
braucht als im Artikel über's LED-Fading. Schade das Falk auf Deinen 
Beitrag aufmerksam geworden ist ;-)

@Falk
Zitat "Quark". Geht auch sachlicher. Siehe Netiquette.

von Falk B. (falk)


Lesenswert?

@  Stefa N. (exa)

>> WO?
>In der EXCEL Tabelle Feld B6 da wo "<-- PWM Auflösung [Integer]" daneben
>steht.

Kann ich nicht öffnen, sagte ich schon.

>> Im Mittel. Das ist ein Unterschied.
>Ich war der Meinung Ueff = Um oder nicht?

Oder nicht.

http://de.wikipedia.org/wiki/Effektivwert

>> Welcher? Datenblatt? Link?
>Reichelt CLUSTER 50 RT
>http://www.reichelt.de/index.html?;ACTION=7;LA=3;O...

Tja Meister, da fehlen die Grundlagen. Siehe LED und mein Posting 
;-)

Beitrag "Re: LED Fading comfort Table Generator - eure Meinung dazu bitte"

MFG
Falk

von Falk B. (falk)


Lesenswert?

@  Vuvuzelatus (Gast)

>Mannmannmann...

In der Tat.

>Ein besondere Situation liegt vor, wenn Du auf den Vorwiderstand
>verzichten wolltest. Das geht unter Umständen.

NEIN! Erzähl gerade Anfängern nicht so einen Quark!!!

> 12 V Gleichspannung
>darf der Cluster natürlich nie abbekommen, aber eventuell verträgt er
>eine PWM mit der Schaltspannung 12 V und der mittleren Spannung 9 V (im
>Datenblatt findet man Angaben dazu).

NEIN!

Jetzt erzählts du den Quark, den du ihm gerade ausreden wolltest!
Entweder Vorwiderstand oder Konstantstromquelle. PUNKT!

MfG
Falk

von Stefa N. (exa)


Lesenswert?

Ich entschuldige mich für meine unpräziesen Angaben zu meinem Vorhaben.

> Dein LED-Cluster braucht einen /Vorwiderstand./ Der erfüllt die Aufgabe,
> aus den 12 V die Spannung zu machen, bei der sich Dein LED-Cluster
> wohlfühlt, also z. B. 9 V. Die fehlenden 3 V fallen am Vorwiderstand ab.
> Die Größe des Vorwiderstands berechnest Du nach R = U/I mit U = 3 V und
> I = der Strom, den der Cluster zieht.
>
> Mit der PWM kannst Du ihn dann nach Herzenslust von "ganz schwachem
> Glimmen"  (1) bis "volle Power" (255) dimmen. Oder auch nur von 20 % bis
> 100 %, wenn er nicht so dunkel werden soll. In diesem Fall musst Du Umin
> in Deinem Programm auf einen Wert > 0 setzen.

Soweit ist das klar, Grundkenntnisse sind schon vorhanden, auch wenn der 
bisherige Verlauf vielleicht nicht darauf schließen lässt ;-)

> Ein besondere Situation liegt vor, wenn Du auf den Vorwiderstand
> verzichten wolltest. Das geht unter Umständen. 12 V Gleichspannung
> darf der Cluster natürlich nie abbekommen, aber eventuell verträgt er
> eine PWM mit der Schaltspannung 12 V und der mittleren Spannung 9 V (im
> Datenblatt findet man Angaben dazu). Dann darf das PWM-Tastverhältnis
> einen bestimmten Wert nie überschreiten, z. B. 75 %. In diesem Fall
> müsstest Du Umax in Deinem Programm auf einen Wert < Uein setzen. Die
> sichere und empfohlene Methode ist jedoch die mit dem Vorwiderstand.

Jetzt sind wir auf einem Nenner! Genau so hab ich mir das vorgestellt. 
Wegen der Verlustleistung wollte ich auf einen Vorwiderstand verzichten 
und den FET als "regelbaren Vorwiderstand" missbrauchen.

MfG
EXA

von Falk B. (falk)


Lesenswert?

@  Stefa N. (exa)

>Jetzt sind wir auf einem Nenner! Genau so hab ich mir das vorgestellt.

NEIN! Das ist gequirlter Unsinn.

>Wegen der Verlustleistung wollte ich auf einen Vorwiderstand verzichten
>und den FET als "regelbaren Vorwiderstand" missbrauchen.

Und was spart das an Energie? NULL!

Nimm einen Vorwiderstand! Basta!

von Stefa N. (exa)


Lesenswert?

Gut wenn ich einen Vorwiderstand nehme dann erreiche ich, dass der 
Cluster maximal 10V abkriegt und keine 12V. Wenn ich den FET dann mit 
PWM-Werten von 0-1023 Ansteueren kriegt der Cluster 0-10V ab. der 
leuchtet aber erst ab 8V. Wie soll ich das dann einstellbar gestalten, 
wennn nicht mit einem höheren minimalen PWM-Wert?

MfG
EXA

von Falk B. (falk)


Lesenswert?

@  Stefa N. (exa)

>Gut wenn ich einen Vorwiderstand nehme dann erreiche ich, dass der
>Cluster maximal 10V abkriegt und keine 12V.

Schon wieder Quark. Lies was über LED und hör auf zu nerven! Lies 
und lerne und hör auf zu deuten. Und lies NOCHMAL was über PWM!
Und JA, das DAUERT bestimmt 1 Tag, ehe du es gefressen hast. Geht nicht 
anders, mussten wir alle durch, auch ohne Internet und diese Seiten und 
deren Wiki.

Wie kommst du eigentlich auf 8V? Im Datenblatt steht Forward Voltage 
typ. 9.25V, max. 12.5V. Du brauchst also mehr, eher 15V 
Versorgungsspannung.
Lass mich raten, du hast das Ding direkt an dein Labornetzteil geklemmt 
und hochgedreht. Naja . . .

>leuchtet aber erst ab 8V. Wie soll ich das dann einstellbar gestalten,
>wennn nicht mit einem höheren minimalen PWM-Wert?

DURCH VERSTEHEN!!!

von spess53 (Gast)


Lesenswert?

Hi

>Wenn ich den FET dann mit PWM-Werten von 0-1023 Ansteueren kriegt der
>Cluster 0-10V ab.

Nein. Dein Cluster bekommt während der On-Time 10V und während der 
Off-Time 0V. Nichts dazwischen.

MfG Spess

von Stefa N. (exa)


Angehängte Dateien:

Lesenswert?

Die Datei ist mit Excel 2003 erstellt. Da du die anscheinend nicht 
öffnen kannst häng ich dir mal den Quellcode und einen Screenshot an.
MfG
EXA

von Stefa N. (exa)


Lesenswert?

Die 8V sind ausgemessen.
Angenommen ich will Um=8V bei Uein=12V bei einem 10-Bit PWM dann 
berechnet sich der Wert nach ((2^10)-1)*8/12 = 682. PWM ist als 
non-inverted phase-correct konfiguriert. D.h. bei Zählerstand 0-681 ist 
ULED=0V. Bei Zählerstand 682-1023 ist ULED=12V. Das macht im Mittel dann 
6V.
Das die LED nur abwechseld 0V oder 12V sieht ist mir schon klar, wie 
sollte das auch anders gehen wenn der FET nur ein- oder ausschaltet.

Sorry wenn ich nerve aber wenn du keinen Bock hast dich mit mir 
rumzuschlagen dann lass es doch einfach. Vielleicht finden sich ja 
andere Leute, die ihre kostbare Freizeit opfern um mir was beizubringen.

MfG
EXA

von Falk B. (falk)


Lesenswert?

@Stefa N. (exa)

>Die 8V sind ausgemessen.

Ok.

>Angenommen ich will Um=8V bei Uein=12V bei einem 10-Bit PWM dann
>berechnet sich der Wert nach ((2^10)-1)*8/12 = 682.

Nö. Vergiss die Spannung. Bei LEDs geht es um den STROM, der wird per 
Vorwiderstand oder Konstantstromquelle festgelegt. Den MITTLEREN 
Strom macht dann die PWM.

von Stefa N. (exa)


Lesenswert?

So, konnte mich die letzten Tage leider nicht damit befassen.
Ich brauche also den Vorwiderstand zur Strombegrenzung, bei Uein=12V 
Uled=9,75V und Iled=200mA wären das dann ca. 12-Ohm. Da der Widerstand 
den Strom schon begrenzt kann ich doch als PWM-Obergrenze (10-Bit-PWM) 
1023 nehmen.
Als nächstes messe ich dann den minimalen Strom, bei dem die LED noch 
leuchtet. Der minimale PWM-Wert berechnet sich dann nach 
(Imin/Imax)*((2^10)-1). Der Table teilt dann den Bereich zwischen PWMmin 
und 1023 in die vorgegebenen n Schritte auf.
Ist der Gedankengang soweit richtig?

Wenn der mittlere Strom geringer wird fällt doch auch am Vorwiderstand 
eine geringere Spannung ab, was zur Folge hätte, dass an der LED eine zu 
große Spannung anliegt. Das muss ich doch irgendwie berücksichtigen 
oder?

MfG
EXA

von Simon B. (nomis)


Lesenswert?

Stefa N. schrieb:
> Als nächstes messe ich dann den minimalen Strom, bei dem die LED noch
> leuchtet. Der minimale PWM-Wert berechnet sich dann nach
> (Imin/Imax)*((2^10)-1). Der Table teilt dann den Bereich zwischen PWMmin
> und 1023 in die vorgegebenen n Schritte auf.
> Ist der Gedankengang soweit richtig?

Ganz ehrlich, wenn ich mir die Funktionsweise einer PWM verdeutliche, 
dann betrachte ich weder irgendwelchen mittleren Spannungen, noch 
irgendwelche mittleren Ströme.

Mit einer PWM ist der LED-Cluster entweder (mit voller Helligkeit) 
eingeschaltet oder ausgeschaltet. Das wechselt aber schneller als das 
Auge mitbekommt.

Mit dem Tastverhältnis (Einschaltzeit vs. Zeit für einen Durchlauf) 
regelt man ganz banal wieviel Prozent der Zeit die LEDs eingeschaltet 
sind. Wenn man das Tastverhältnis in 1024 Schritten (von 0 bis 1023) 
regeln kann, dann ist die LED bei 1023 kontinuierlich an (max. 
Helligkeit, 100%), bei 0 kontinuierlich aus (0%), bei 512 zu 50% hell, 
bei 128 zu 12.5% hell, bei 1 zu 0.098% hell.

Die Lichtmenge die im Schnitt abgestrahlt wird ist genau der prozentuale 
Anteil der Einschaltzeit. Insbesonders leuchtet die LED auch noch bei 
einer Einstellung von 1, nur halt nur sehr kurz. Hier den 
Durchschnittsstrom zu berechnen und dann im Datenblatt festzustellen 
"oh, bei dem Strom leuchtet die ja noch gar nicht" ist schlicht ein 
Trugschluss.

Das muss man ggf. noch für eine nichtlineare Wahrnehmung durch das Auge 
korrigieren, aber meiner Meinung nach führt jeder Umweg über mittlere 
Ströme oder mittlere Spannungen in die Irre.

Viele Grüße,
        Simon

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.