Für die Helligkeitsregulierung von LEDs will ich einen Timer von 1KHz
einsetzen, also kleinstmögliche Periodendauer=1mS.
Größte Helligkeit ist 100%, also dauerhaft anliegender H-Pegel.
Kleinste Helligkeit entsprechen 0%, dauerhaft anliegender L-Pegel.
Wenn man nach einfachem Dreisatz das Tastverhältnis ausrechnet, käme man
bei 50% zu einem Rechtecksignal, das da lautet: 500mS H-Pegel, 500ms
L-Pegel.
Die lED wird also nicht helligkeitsreguliert, sondern sie blinkt. Das
ist natürlich nicht gewollt.
In dem Beispiel erkennt man ohne Taschenrechner, dass 50% Helligkeit
auch anders ereicht werden: Nämlich wenn alle 1mS der Pegel wechselt.
Soweit ist mir das klar. Aber wie berechnet man das grundsätzlich? Sagen
wir, in 1%-Schritten? Ziel ist natürlich nicht nur die mathematische
Berechnung, sondern ein möglichst gutes Tastverhältnis hin zu bekommen,
mit kleinstmöglicher Periodendauer. Gibt es dazu eine Formel? Danke für
Tipps.
PWM schrieb:> Wenn man nach einfachem Dreisatz das Tastverhältnis ausrechnet, käme man> bei 50% zu einem Rechtecksignal, das da lautet: 500mS H-Pegel, 500ms> L-Pegel.>> Die lED wird also nicht helligkeitsreguliert, sondern sie blinkt. Das> ist natürlich nicht gewollt.
Dann mußt Du eben bei 50% so schnell blinken das es Dein Auge nicht mehr
als blinken wahrnimmt. Das geht bei 50 Hz sicher schon los und bei 100
Hz ist es dann eher entspannter. Also Deine 1 kHz sind viel zu niedrig.
Warum arbeitest Du nicht mit 20 kHz oder auch mehr? Die MOSFETs für ein
paar Cent schaffen dies locker.
mfg Klaus
Nico W. schrieb:> Du suchst nach delta-sigma.
Nur für ein paar LEDs ist mir das zuviel Overhead, und mir zu
kompliziert. Also keine einfache Formel mögl. ? Gut, dann lege ich die
PWM-Pattern eben in einer kleinen Tabelle ab. Dachte nur, es geht per
Formel vielleicht preisgünstiger.
PWM schrieb:> Nur für ein paar LEDs ist mir das zuviel Overhead, und mir zu> kompliziert. Also keine einfache Formel mögl. ?
Dann setze doch Deine 1% an 100 Hz an. Tastverhältnis 1:100.
10% wären dann 10:100
100% wären dann 100:100
Also sollte Deine Grundfrequenz 100 Hz x 100 = 10 kHz betragen?
War das so schwer?
mfg Klaus
Klaus R. schrieb:> PWM schrieb:>> Nur für ein paar LEDs ist mir das zuviel Overhead, und mir zu>> kompliziert. Also keine einfache Formel mögl. ?>> Dann setze doch Deine 1% an 100 Hz an. Tastverhältnis 1:100.> 10% wären dann 10:100> 100% wären dann 100:100>> Also sollte Deine Grundfrequenz 100 Hz x 100 = 10 kHz betragen?> War das so schwer?> mfg Klaus
Ach Klaus, das führt doch nicht zum Ziel.
Poste eine Liste in 1% Schritten, dann wirst du es selbst sehen
Mit einer for-Schleife ist das für dich sicher nicht schwer.
oder doch?
Die Frequenz ist 1000 Hz. Und zwar maximal. Über die Erhöhung brauchen
wir nicht zu reden. Wenn das ginge, wäre die Frage unsinnig.
Folglich gehen festen Pulslängen nicht, sondern das HL-Verhältnis muss
skaliert werden, z.B. kleinster gemeinsamer Nenner oder so in der
Richtung.
spess53 schrieb:> Hi>> Um welchen Controller handelt es sich denn?>> MfG Spess
??
Jeder Controller kann mit 1000 Hz einen Pin von H auf L und umgekehrt
schalten.
PWM schrieb:> Für die Helligkeitsregulierung von LEDs will ich einen Timer von 1KHz> einsetzen, also kleinstmögliche Periodendauer=1mS.>> Wenn man nach einfachem Dreisatz das Tastverhältnis ausrechnet, käme man> bei 50% zu einem Rechtecksignal, das da lautet: 500mS H-Pegel, 500ms> L-Pegel.
Das wäre nur dann so, wenn man sich dämlich anstellen würde. Bei PWM
arbeitet man normalerweise mit konstanter Wiederholfrequenz und macht
die nicht vom eingestellten Tastverhältnis abhängig.
> In dem Beispiel erkennt man ohne Taschenrechner, dass 50% Helligkeit> auch anders ereicht werden: Nämlich wenn alle 1mS der Pegel wechselt.>> Soweit ist mir das klar. Aber wie berechnet man das grundsätzlich? Sagen> wir, in 1%-Schritten?
Man nimmt einen hinreichend schnell getakteten Timer. Wenn man sagen wir
200Hz Wiederholfrequenz will und 1% Schritte, dann braucht man
200Hz × (100% ÷ 1%) = 200Hz × 100 = 20kHz
Taktfrequenz bzw. eine Grundperiode von 50µs. Für n% Helligkeit schaltet
man dann für n Perioden auf H und für (100-n) Perioden auf L. Für 1%
also 50µs H und 4950µs auf L. Für 50% sind es 2500µs H und 2500µs L.
H- und L-Zeit addieren sich also immer zu 5000µs = 5ms. Was gerade die
Periodendauer der angestrebten 200Hz sind.
Für richtig hohe Auflösung braucht man Frequenzen im MHz-Bereich.
Deswegen macht man das dann auch besser in Hardware. Die meisten µC
haben heute PWM-Kanäle. Meist mehrere.
Nur mal am Rande, du solltest Zeiten nicht in Siemens angeben. Hier ist
klar, was gemeint ist, aber in irgendwelchen Formeln könnte das
Verwirrung geben.
PWM schrieb:> Nico W. schrieb:>> Du suchst nach delta-sigma.>> Nur für ein paar LEDs ist mir das zuviel Overhead, und mir zu> kompliziert. Also keine einfache Formel mögl. ? Gut, dann lege ich die> PWM-Pattern eben in einer kleinen Tabelle ab. Dachte nur, es geht per> Formel vielleicht preisgünstiger.
Zu viel Overhead bei 1kHz?
Im Prinzip sind es nur 10 Zeilen Code inklusive Formatierung.
https://github.com/Traumflug/Teacup_Firmware/blob/master/heater.c#L274:L283
Das do_heater ist ein einfaches an bzw
Ausschalten.
PWM schrieb:> Für die Helligkeitsregulierung von LEDs will ich einen Timer von 1KHz> einsetzen, also kleinstmögliche Periodendauer=1mS.
Du solltest dir mal den Begriff "Periodendauer" zu gemüte führen und
schauen was er bedeutet. Wenn du wirklich das meinst was du schreibst
wären 50 % gleich 500µs H-Pegel und 500µs L. Das nimmst du bestimmt
nicht mehr als blinken war.
Was willst du da eigentlich rechnen und von was für einer Tabelle
sprichst du?