Forum: Mikrocontroller und Digitale Elektronik mittlerer Strom von PWM messen


von Daniel S. (dschaedl)


Lesenswert?

Hallo

Ich betreibe einige LEDs mit einem PWM Signal aus einem PIC16f690 und 
würde für die Regelung gerne den mittleren Strom der LEDs mittels ADC 
messen.
Konkret steuert das PWM-Signal (~2KHz) einen MOSFET, der die LEDs (3 in 
Serie) betreibt. Ein 1 Ohm Shunt Widerstand nach der LED gibt mir eine 
kleine Spannung, die ich mittels OpAmp verstärke und dann mit dem ADC 
messe.
Das klappt soweit, aber die Spannung ist sehr variabel (logisch, ist ja 
auch PWM). Wie kriege ich nun den mittleren Strom, der durch die LED 
fliesst?
Ich habe versucht die maximale Spannung zu messen, kriege das aber nicht 
richtig hin. Das Multimeter zeigt mir am OpAmp Ausgang eine vernünftige 
Spannung an, der ADC misst aber Mist :-(
Mit einer konstanten Spannung (von extern) klappt die Regelung über den 
ADC wie erwartet.
Ein Kondensator um die Spannung am Messeingang kurz zu halten habe ich 
auch schon versucht, wollte aber nicht klappen :-(

Wie misst man nun normalerweise den mittleren Strom eines PWM Signals? 
Oder den Maximalen - den Rest kann ich danach ja rechnen.

Gruss
Daniel

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Mittelwert bilden mit einem RC-Tiefpass?
1
  |
2
  |
3
  v  I pwm
4
  |    ____
5
  o---|____|---o----> ADC
6
  |            |
7
  -           ===
8
 | |           |
9
 | | Shunt    ---
10
 | |
11
  -
12
  |
13
 ---

von Schrotty (Gast)


Lesenswert?

wenn du nen ADC hast, der so schnell wandelt, dass du den Rechteck 
abbilden kannst. Dann kannst deinen mittleren Strom berechnen. Während 
Toff ist der Strom Null und während Ton ist der Strom
Imax = Ushunt/Rshunt.

und über den Duty Cycle kannst dann den mittleren Strom bestimmen.

Iavg = Ion * DC

DC und Rshunt sind bekannt
Ushunt wird gemessen

von Schrotty (Gast)


Lesenswert?

Oder über ne Sample and Hold Schaltung.. immer dann, wenn der PWM auf 
eins geht, machst nen Sample in den Kondensator. über nen 
Spannungsfolger gibst dann die Kondensatorsapnnung an deinen ADC. So 
weisst du immer, wie deine Spannung am Shunt während Ton ist. Rest wie 
oben.

Du siehst, jetzt haben wir schon drei Möglichkeiten. Je nachdem, wie 
genau und reaktionsschnell du regeln willst steigt oder fällt der 
Aufwand

von Falk B. (falk)


Lesenswert?

@  Daniel S. (dschaedl)

>Ich betreibe einige LEDs mit einem PWM Signal aus einem PIC16f690 und
>würde für die Regelung gerne den mittleren Strom der LEDs mittels ADC
>messen.

???
Wozu messen? Du KENNST den Strom doch, weil DU die PWM steuerst. Siehe 
PWM.

MFG
Falk

von Matthias L. (matze88)


Lesenswert?

Ich hab das so verstanden, dass er die Spannung nicht kennt, die seine 
LED treibt. Von daher würde ich das auch einfach so machen, wie bereits 
beschrieben: Die Spannung überm Shunt während der On-Phase messen 
(besser: Kurz vor der Off-Phase, falls durch induktive Anteile der Strom 
langsamer ansteigt). Dann mit dem Dutycycle, den du ja durch deine PWM 
kennst, den mittleren Strom ausrechnen.

Matthias

von Schrotty (Gast)


Lesenswert?

Ich seh´s auch so: Er kennt den Strom nicht... zumindest nicht genau.
Er kennt lediglich die Spannung am PWM-Ausgang Uon, und Uoff und den 
DutyCycle.
Aber genaugenommen würde sein regler einmal einregeln und dann wäre es 
das. Es kommt ja von aussen keine Störgröße mehr drauf. Ausser, er 
möchte Einflüsse, wie Temperatur kompensieren.

Wenn es aber gar nicht so exakt sein muss, dann würde ich einfach mit 
nem kleinen Tesprogramm den CD langsam hochdrehen, bis die LEDs so 
leuchten, wie ich es mir vorstelle und dann den DC hart in der SW 
einstellen. Einflüsse wie Temperatur werden dann halt nicht kompensiert.

von gast (Gast)


Lesenswert?

Hallo,
wichtig ist wohl hier, dass der Sample-Vorgang nicht mit einem 
Schaltvorgang der PWM zusammenfällt. Das verursacht i. d. R. starke 
Störungen.
Somit sollte der AD-Wandler auf die PWM abgestimmt sein, wie das bei 
Motor-Controllern üblich ist.
MfG.

von Daniel S. (dschaedl)


Lesenswert?

Danke für all die vielen Hinweise!!

ein paar Kommentare:
Der ADC ist leider zu langsam um das PWM Signal korrekt abzubilden.
Die Ausgangsspannung kenne ich leider nicht genau; sie liegt im Bereich 
10-14V - darum will ich ja messen ;-)
Ausserdem will ich schlussendlich die Helligkeit regeln, indem ich die 
Zielspannung über Rshunt anpasse.

Sample & Hold klingt eigentlich optimal. Aber dazu brauche ich wieder 
ein zusätzlich zu beschaffendes Bauteil.
Den ADC auf das PWM Signal zu synchronisieren klingt eigentlich auch gut 
- bloss wie :-(
Ich werde mich zuerst mal mit dem Tiefpass beschäftigen. Die 
Dimensionierung wird mich wohl noch etwas Kopfzerbrechen kosten, da ich 
das noch nie gemacht habe...
zu diesem Thema habe ich auch noch einen interessanten Artikel gefunden:
http://imperia.mi-verlag.de/imperia/md/content/ai/ae/fachartikel/ei/2006/10/ei06_10_030.pdf

Danke nochmals für die vielen Tips :-)
Daniel

von MWS (Gast)


Lesenswert?

Warum so kompliziert ? Wenn die Versorgungsspannung der LED schwankt, 
dann würd' ich halt die messen, und die PWM entsprechend nachregeln.

von Gast3 (Gast)


Lesenswert?

>Warum so kompliziert ? Wenn die Versorgungsspannung der LED schwankt,
>dann würd' ich halt die messen, und die PWM entsprechend nachregeln.

Genial!

Gast3

von Daniel (Gast)


Lesenswert?

hmm.. klar das geht. Dann muss ich mich nur noch auf meine Rechenkünste 
verlassen.
Ist mir aber zu einfach :-D .
Ich habe mir jetzt die Lösung mit dem Tiefpass aufgebaut - klappt auch 
wunderbar und ich habe einen schönen Regelkreis :-)

Danke nochmals
Daniel

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.