www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mittlerer Strom von PWM messen


Autor: Daniel S. (dschaedl)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mittelwert bilden mit einem RC-Tiefpass?

  |
  |
  v  I pwm
  |    ____
  o---|____|---o----> ADC
  |            |
  -           ===
 | |           |
 | | Shunt    ---
 | |
  -
  |
 ---

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias Larisch (matze88)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schrotty (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Daniel S. (dschaedl)
Datum:

Bewertung
0 lesenswert
nicht 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/...

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

Autor: MWS (Gast)
Datum:

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

Autor: Gast3 (Gast)
Datum:

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

Genial!

Gast3

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.