Hallo Forumgemeinde, ich habe eine LED die mit einem PWM gedimmt wird. Es handelt sich um den 16Bit Timer (no prescale) des ATMega128 der mit 16MHz getacktet wird. Jetzt habe ich einen Shunt mit dem ich den Strom messen möchte. Jetzt habe ich das Problem, dass ich den Strom nur bei einer Duty-Cycle von ca. 20% messen kann. Wenn ich den Strom messen möchte, aktiviere ich den Timer-Overflow-Interrupt. Wenn der Timer, mit dem ja das PWM-Signal erzeugt wird, seine 65.536 erreicht, wird der Interrupt ausgelöst. In diesem Interrupt starte ich dann eine ADC-Messung. Klar dass ich dann nur einen Vernünftigen Wert erhalte, wenn das PWM-Signal lang genug ansteht da der ADC eine viel kleinere Messfrequenz hat. Jetzt ist meine Frage ob jemand eine Möglichkeit kenn, das der ADC genau dann misst, wenn der PWM gerade erst einen duty-Cycle erledigt hat. Viele Grüße, Marcel(",)
Miß doch den mittleren Strom über einen Tiefpaß und verrechne das mit deinem DC.
Was versprichst du dir von dieser Messung? Die Spannung ist immer gleich. Somit ist auch der Strom immer gleich. Ob nun 1 ms, 2s oder 3 Tage. mfg.
Vom adc sollte bekannt sein wann er seinen sample&hold macht (nach dem start), steht im db. Entweder nimmst du den anderen comapre um den adc so zu triggern, dass er sampled wenn der strom (fast) maximal ist (und dann im leerlauf konvertiert), oder du weichst aus (wenn du keinen compare mehr freihast) auf ein _delayms() oder _delayus() um den adc so richtig zu zielen und hoffst darauf, dass niemand dazwischen interrupted.
Anmerkung an alle "schlauen" hier: vlt. dimmt er ja per pwm + Spule
Hört sich aber nicht so an, wäre bei einer LED auch nicht wirklich praktikabel. Wo bleibt eigentlich falk mit der Netiquette? Pläne sagen mehr als tausend Worte!
Hallo zusammen, @j.c. Ich kann mit der Frequenz leider nicht runter. @Thomas Eckmann Danke für Deinen Hinweis. Darauf wäre ich von selbst nicht gekommen! @Andreas K. Ich möchte den Strom messen, damit der maximale LED-Strom nicht überschritten wird. Der Strom sollte besser nicht den Nennstrom im Datenblatt überschreiten. Ich wollte es extra nicht erwähnen, da es eigentlich nicht zum Problem dazu gehört. Ich treibe mit dem PWM-Signal einen LED-Treiber (ISL97801). Dieser kann über einen Spannungsteiler einen LED-Strom vorgeben. Dieser wiederum erzeugt ein PWM-Signal mit der die LED getrieben wird. In der Experimentierphase möchte ich den eingestellten Strom halt gerne kontrollieren bevor ich mich in der endgültigen Schaltung auf den eingestellten Strom verlasse. Das tut aber nicht zur Sache! Mich hat es einfach interessiert, wie ich einen PWM-Strom messen kann. Mein Problem ist es, dass bei einer sehr kleinen „duty cycle“ die Spannung am Shunt halt nicht richtig gemessen werden kann. @Max D. Ich glaube das ist die rettende Idee. Ich habe bei den zwei 16-bit- Timer jeweils noch den 3. Output Compare übrig. (die anderen sind mit den RGBW- Farben belegt) Diesen OCxC müsste ich kurz vor erreichen des Overflows setzen, so dass eine ADC-Messung genau bei 1-5 / 65.536 gemessen wird. Danke für den Tipp. Meld mich wenn ich ein Ergebnis habe. Danke auch an die anderen, Viele Grüße, Marcel(",)
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.