Forum: Mikrocontroller und Digitale Elektronik Strommessung, wie und was.


von Rubelus (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

bitte nicht gleich in der Luft zerreisen, ich möchte mich da 
einarbeiten. Jedoch stehe ich da gerade vor dem Wald. Für euch scheint 
das ein leichtes zu sein, für einen Anfänger jedoch ist es ziemlich 
kompliziert. Über Hilfe bin ich euch sehr dankbar.

Ich habe nun mittlerweile zwei Jahre in die Welt der µC (AVR) 
reingeschnüffelt. Habe schon so einiges gebastelt und mit dem löten 
klappt es, nach anfänglichen Schwierigkeiten, auch wunderbar.

Nun möchte ich mit einem AVR (Tiny, Atmega, egal..) eine Strommessung 
meiner Schaltung durchführen. Die Frage ist nun wie?!

Einige Schalten beruhen ja auf dem Prinzip der abfallenden Spannung an 
einem Wiederstand. Diese geschichte klingt für mich auch logisch. Nur 
ist die Frage - WO greife ich da den Strom ab?!

Wenn ich nun, die im obigen Bild, gezeigte Stelle (Roter Pfeil) messen 
möchte. Schalte ich nun einen zwei Wiederstände in Reihe, der erste 
Wiederstand wird ziemlich niederohmig (??) 0,5Ohm 1% und der Zweite 
etwas höher - und zwischen den beiden greife ich den Strom für den ADC 
ab. Oder habe ich das komplett falsch verstanden?!

Wie läuft das mit den Shottky Dioden?! Ich habe hier in meiner Kramkiste 
noch einige TL431 Dioden liegen.

Datenblatt: 
http://www2.ac-lyon.fr/enseigne/electronique/theme2001/tl431.pdf

Wie sieht es damit aus?!

Vielen Dank für eure liebe Hilfe ;)

von Rubelus (Gast)


Lesenswert?

Oh, jetzt ist das bild zweimal drinne :/ Kann ja ein Mod eins löschen - 
dankö

von Pezi (Gast)


Lesenswert?

Das ganze nennt sich Shunt-Widerstand und du brauchst nur einen 
Widerstand. ;)

Nimm einen nieder-ohmigen Widerstand und messe den Spannungsabfall 
direkt am Widerstand. Dank des Ohmschen Gesetz kannst du dann auch den 
Strom schliessen.

Ich stell mir aber die Frage für was man an dieser Stelle den Stromfluss 
messen will.

von HildeK (Gast)


Lesenswert?

1. Trenne die markierte Stelle auf und klemme einen Strommesser 
dazwischen.

2. Trenne die markierte Stelle auf und schalte einen kleinen Widerstand 
dazwischen - z.B. deine 0.5Ω. Dann messe mit einem Spannungsmesser die 
Spannung an diesem Widerstand. Dann rechne: I = U / R.

Bei beiden Methoden hast du das Problem, dass am Messgerät bzw. am 
Widerstand eine Spannung abfällt, die deiner nachfolgenden Schaltung 
fehlt und somit auch einen kleineren Strom zur Folge hat.
Deshalb:
Der Widerstand sollte so klein wie möglich sein, um den Messfehler klein 
zu halten.
Der Strommessbereich sollte so groß wie möglich sein, damit hat der 
Strommesser auch einen kleinen Innenwiderstand. Natürlich solltest du 
noch was sinnvolles ablesen können.

Es gibt auch noch eine spezielle Schaltung zur Kompensation des 
Spannungsabfalls - der Name ist mir gerade entfallen. Alternativ kannst 
du statt des Spannungsreglers die 5V extern einspeisen und nach dem 
Strommesser noch die Spannung messen und sie mit dem Netzgerät auf die 
5V einstellen.

von Rubelus (Gast)


Lesenswert?

Pezi schrieb:
> Ich stell mir aber die Frage für was man an dieser Stelle den Stromfluss
> messen will.

Wenn ich an den 7805 noch weitere Abnehmer hänge (LED, etc..) möchte ich 
gerne, während der Laufzeit, mit dem Atmega, berechnen wieviel Strom die 
Schaltung verbraucht. Dafür sollte diese Stelle, vor allen Abnehmern, 
doch am besten geeignet sein oder?

HildeK schrieb:
> 1. Trenne die markierte Stelle auf und klemme einen Strommesser
> dazwischen.

Ja mit dem Multimeter kann ich das ja wunderbar messen, keine Frage, 
jedoch möchte ich dies ja meinen µC berechnen lassen.

HildeK schrieb:
> Bei beiden Methoden hast du das Problem, dass am Messgerät bzw. am
> Widerstand eine Spannung abfällt, die deiner nachfolgenden Schaltung
> fehlt und somit auch einen kleineren Strom zur Folge hat.
> Deshalb:
> Der Widerstand sollte so klein wie möglich sein, um den Messfehler klein
> zu halten.
> Der Strommessbereich sollte so groß wie möglich sein, damit hat der
> Strommesser auch einen kleinen Innenwiderstand. Natürlich solltest du
> noch was sinnvolles ablesen können.

Hmm.. das Argument zählt natürlich, wenn ich in diese Leitung nun einen 
Wiederstand schalte, dann kommen hinter dem Wiederstand ja keine 5V mehr 
herraus.

HildeK schrieb:
> 2. Trenne die markierte Stelle auf und schalte einen kleinen Widerstand
> dazwischen - z.B. deine 0.5Ω. Dann messe mit einem Spannungsmesser die
> Spannung an diesem Widerstand. Dann rechne: I = U / R.

DAS soll ja der Atmega mit ausrechnen, nur da scheitert es mir ja.

Danke schonmal sehr für eure Hilfe.

von Frank (Gast)


Lesenswert?

Bitte: WIDERSTAND

von Pezi (Gast)


Lesenswert?

Rubelus schrieb:
> Hmm.. das Argument zählt natürlich, wenn ich in diese Leitung nun einen
>
> Wiederstand schalte, dann kommen hinter dem Wiederstand ja keine 5V mehr
>
> herraus.

Das ist richtig! Daher sollte der Messwiderstand so klein wie Möglich 
sein.
In der Regel arbeitet man mit Shunts, die mit einen Spannungsabfall von 
0-60mV arbeiten.
Wenn du nun mit einer maximalen Stromaufnahme von 100mA rechnest, dann 
benötigst du einen 0.6Ohm Widerstand.

Die 0-60mV musst du dann nur noch über deinen µC messen. ;)

von Rubelus (Gast)


Angehängte Dateien:

Lesenswert?

Frank schrieb:
> Bitte: WIDERSTAND

Jaja - das passiert leider im Eifer des Gefechtes einmal :D

Also... soweit wie ich das nun begriffen habe. Nehme ich einen 
Shuntwiderstand - dann messe ich davor und danach - und die Differenz 
ergibt mein Verbrauch?!

von Frank (Gast)


Lesenswert?

Also, ich weiß schon, was Dein ADC2 messen wird. Na? Genau immer 5V. Das 
brauchst Du nicht. Da Du ja weißt, wieviel dort anliegt.
So funktioniert das alles nicht.

Probier doch einen einstellbaren Regler zu nehmen und zieh die 
Spannungsrückkopplung des Reglers nach dem (kleinen) Shunt zurück. Dann 
hast Du immer exakte 5V
und kannst trotzdem bequem vor dem Shunt via Spannungsteiler (1:9) 
messen.

Ich denke Du brauchst nur einen ADC-Kanal, da Du nur einen Strom messen 
willst.

Hoffe ich habe Dir damit geholfen und Du komst damit klar.

Gruss

- Frank

von spess53 (Gast)


Lesenswert?

Hi

>Also... soweit wie ich das nun begriffen habe. Nehme ich einen
>Shuntwiderstand - dann messe ich davor und danach - und die Differenz
>ergibt mein Verbrauch?!

Du bekommst keine Differenz. Deine maximale Referenzspannung VREF ist 
VCC. Mit VREF=VCC bekommst du folgende Werte:

ADC2 ist >VREF -> ADC=$3FF
ADC1 ist VREF  -> ADC=$3FF

Differenz gleich Null.

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

Rubelus schrieb:
> Frank schrieb:
>> Bitte: WIDERSTAND
>
> Jaja - das passiert leider im Eifer des Gefechtes einmal :D
>
> Also... soweit wie ich das nun begriffen habe. Nehme ich einen
> Shuntwiderstand - dann messe ich davor und danach - und die Differenz
> ergibt mein Verbrauch?!

Im Prinzip: ja
Aber so einfach ist die Sache nicht.

Denn du misst ja nicht die Spannung selber, sondern mit dem ADC stellst 
du das Verhältnis der am ADC anliegenden Spannung in Bezug zu AREF fest.

Dein ADC1 wird immer 100% liefern und dein ADC2 ist sogar darüber.

von Karl H. (kbuchegg)


Lesenswert?

Aber man kann etwas anderes machen:
Der Mega kann die Höhe seiner Versorgungsspannung messen.
Dazu benötigt man ein Spannungsnormal, das unabhängig von der 
Versorungungsspannung ist. Glücklicherweise hat der Mega so etwas 
eingebaut: Die Bandgap-Referenz

Die liefert immer die gleiche Spannung.
Man nimmt nach wie vor Vcc als Referenz (aber bitte nicht AREF an Vcc 
anschliessen, das schaltet man per Software) und misst die 
Bandgap-Referenz aus. Daraus kann man Vcc errechnen.

Da du die Spannung nach dem 7805 kennst und die Spannung nach dem 
Widerstand messen kannst, kannst du den Spannungsabfall berechnen und 
damit auch den Strom.

von MaWin (Gast)


Lesenswert?

Der Spannungsabfall am 0.5 Ohm Widerdtans R1 wird zu gering sein.

Statt einen höheren Spannungsabfall durch einen grösseren Widerstand zu 
bauen (der die Betriebsspannung deines AVR ruiniert),
sollte man verstärken.

Und da gilt es ein sinnvolles Prinzip, für das es sogar ICs gibt 
(natürlich kann man es auch diskret aufbauen):

http://www.fairchildsemi.com/ds/FA%2FFAN4010.pdf
http://www.linear.com/pc/productDetail.jsp?navId=H0,C1,C1154,C1009,C1077,P10220

von Nn N. (jaytharevo)


Lesenswert?

Rubelus schrieb:
> Nur ist die Frage - WO greife ich da den Strom ab?!

Du greifst eben nicht den Strom ab. Eine Strommessung funktioniert immer 
seriell. Bei höheren Stromstärken (reichen schon ein paar hundert mA) 
dürfte man den Strom gar nicht mehr durch den µC leiten, da dieser, das 
nicht aushalten würde. Also gibt es so etwas wie eine direkte 
Strommessung mit einem µC nicht.
Deswegen nutzt man das Ohm'sche Gesetz welches den Zusammenhang zwischen 
Strom und Spannung beschreibt mit:


Wenn du nun einen Shunt (kleiner Widerstandswert) verwendest kennst du 
dessen Widerstand. Mit dem ADU tastest du nun den Spannungsabfall am 
Widerstand ab und mit der oben genannten Formel kommst du auf den Strom.

Z.B:
R = 0,1 Ohm
U = 3,21V


Man erkennt hier schon, dass die Spannung welche abfällt nicht sehr hoch 
sein wird, außer du hast sehr hohe Ströme. Deswegen ist es auch gescheit 
wenn du eine niedrigere Referenzspannung als 5V nimmst. Somit kannst du 
die Auflösung drastisch erhöhen.

Wenn du zb. einen maximalen Spannungsabfall von 1V hast, bei oben 
genannten Widerstand und du einen 10-Bit ADU zur Verfügung hast beträgt 
deine max. Auflösung 0,977mV. Bei 5V Referenzspannung wären es nur 
4,88mV.

Ich hoffe du weist was ich meine^^. Sonst einfach noch mal fragen! :)

von Micha H. (mlh) Benutzerseite


Lesenswert?

spess53 schrieb:
> Du bekommst keine Differenz. Deine maximale Referenzspannung VREF ist
> VCC. Mit VREF=VCC bekommst du folgende Werte:
>
> ADC2 ist >VREF -> ADC=$3FF
> ADC1 ist VREF  -> ADC=$3FF
>
> Differenz gleich Null.

Ach was, stellt euch doch nicht so an. ADC1 ist selbstverständlich 
konstant -> entsorgen.
ADC2 über Spannungsteiler messen: funktioniert, aber Auflösung gering.
Lösung: Operationsverstärker ranhängen, per Verstärkung ist dann sogar 
eine einstellbare Empfindlichkeit drin.
Optimale Lösung: fertigen Current Sense Amp benutzen, wie hier schon 
gesagt.

von Joachim B. (jojo84)


Lesenswert?

Mir ist grad noch eine "Lösung" eingefallen, um die Versorgungsspannung 
des Controllers zu entkoppeln.

Nimm einfach einen zweiten Spannungsregler :) . Einer ist dann nur für 
den Controller (der ohne Shunt) und einer eben für deine Last mit 
seriellem Messwiderstand.

Klar wären Lösungen wie die von Karl Heinz deutlich schöner, aber mit 
zwei Spannungsreglern würde es auch gehen. Wie der Shunt dann an den 
Controller angeschlossen wird bleibt gleich (mit OP z.B.).

Gruß

von Mine Fields (Gast)


Lesenswert?

Ich sehe im Moment nicht, wie man mit einem ADC ohne Zubehör den Strom 
messen kann, ohne die 5V des Spannungsreglers als gegebene Größe 
hinzunehmen.

Gut, man kann natürlich manuell abgleichen, um die Toleranz des 7805 
herausrechnen zu können. Die Temperatur- und Langzeitstabilität habe ich 
nicht im Kopf, ich könnte mir aber schon vorstellen, dass die die 
Auflösung schön reduzieren kann.

Also lieber gleich einen AVR mit Differenzspannungsmessung nehmen 
(Common-Mode-Bereich sollte noch ok sein, müsste man aber noch einmal 
nachschauen) oder ganz normal mit OP die Differenzspannung messen. Oder, 
wie schon vorgeschlagen wurde, über zwei Spannungsteiler und rechnen 
(aber dann müsste der uC eigentlich zwei ADC haben und exakt 
gleichzeitig sampeln).

von Rubelus (Gast)


Lesenswert?

Eventuell so?!

Die AREFF Spannung vor dem Shunt abnehmen - Somit liegt AREFF immer auf 
5V - nach dem Shunt dann die Spannung messen.

Nun meine Bedenken: Darf die AREFF Spannung höher sein als die 
Versorgungsspannung solange sie 5V nicht übersteigt?!

(Mir ist bewußt das nun im Bild noch ein C zwischen GND und AREFF fehlt)

von Rubelus (Gast)


Angehängte Dateien:

Lesenswert?

Oh man... Bild fehlt noch ^^

von Lukas K. (carrotindustries)


Lesenswert?

Bist du auf den Atmega8 festgelegt? Manche AVRs, z.B. der ATmega32 haben 
einen Differenzverstärker mit bis zu 200x Verstärkung eingebaut. Dann 
sind externe Opamps o.Ä. nicht notwendig.

von Rubelus (Gast)


Lesenswert?

Luk4s K. schrieb:
> Bist du auf den Atmega8 festgelegt? Manche AVRs, z.B. der ATmega32 haben
> einen Differenzverstärker mit bis zu 200x Verstärkung eingebaut. Dann
> sind externe Opamps o.Ä. nicht notwendig.

Nönö... bin nicht auf einen 8er angewiesen. In der Krabbelkiste liegen 
zum probieren noch 32iger und ein paar 644er rum.

Der Atmega8 hat ja überhaupt kein Gain, oder übersehe ich da was!? Der 
Tiny45/85 hat ja schonmal wenigstens 20x.

von Lukas K. (carrotindustries)


Lesenswert?

Rubelus schrieb:
> Der Atmega8 hat ja überhaupt kein Gain

Stimmt, dessen ADC ist im Vergleich zu den ADCs manch seiner Brüder 
überaus retardiert.

von David (Gast)


Lesenswert?

Schlussendlich misst du den spannungsabfall über einem Widerstand 
(Shunt).
lies mal das INA138 datenblatt...

von Alexander S. (esko) Benutzerseite


Lesenswert?

Man kann die Spannung vor dem Shunt über einen Spannungsteiler messen.
Die Spannung am AVR kann man auch messen (Suche: AVR eigene Spannung 
messen).
Dann rechnet man etwas und hat den Strom.

von byte (Gast)


Lesenswert?

http://www.elektronik-kompendium.de/public/schaerer/i_sens.htm

Die erste Schaltung kann man für niedrige Spannungen ganz gut verwenden. 
Entweder mit dem Großvater 741 oder einem neueren r2r overthetop OPV.

Die Schaltung des INA138 kann man auch so nachbauen. In der 30x 
Schaltungsreihe stehen 2 oder 3 Beispiele. Hab nur gerade nicht zur 
hand.

Bin der Meinung das hier im Wiki zu diesem Thema auch was steht. Finds 
nur wider nicht.

von ReinHerR (Gast)


Lesenswert?

Mein Vorschlag: lege einen Widerstand in die Masse-Rückleitung, also in 
der Masse zwischen C2 und C3 rein. Am Fußpunkt vom C2 kannst Du dann 
direkt den ADC anschließen. Bei einem 10 Ohm Widerstand sind 0,1 Volt 
dann 1 Ampere.


Gruß
ReinHerR

von byte (Gast)


Lesenswert?

byte schrieb:
> Die erste Schaltung kann man für niedrige Spannungen ganz gut verwenden.

Hoppala.. zuweit vorrausgedacht. Diese Schaltung muss natürlich 
modifiziert werden. Das ist ja erstmal ein "begrenzer". Das kann man 
aber so ummodeln das es als Strommesser funzt. Läuf auf das INA138 
Prinzip hinaus.

von Joachim B. (jojo84)


Lesenswert?

Wenn du beim Controller nicht festgelegt bist, dann würde ich einen Typ 
mit interner Verstärkung wählen. Für einen Tiny45/85 hab ich sowas schon 
ganz erfolgreich hingekriegt. Da köntest du dich dann auch noch 
entscheiden, ob du lieber 1,1V Vref oder 2,56 Vref haben willst...
Dann brauchst du nurnoch den Shunt an zu klemmen, und fertig :) . Der 
Shunt muß dann natürlich so dimensioniert sein, daß bei deinem maximal 
auftretenden Strom UND Verstärkung der Messbereich des ADC nicht 
überschritten wird. Bei einer Verstärkung von z.B. 20 würde deine 
maximal messbare Spannung nurnoch 1/20 sein, nech? Aber alles nur halb 
so wild, kriegste hin :)

Gruß

von Joachim B. (jojo84)


Lesenswert?

ReinHerR schrieb:
> Bei einem 10 Ohm Widerstand sind 0,1 Volt
> dann 1 Ampere.

Wie kommste denn dadrauf? Mit U = R * I sind
10 Ohm * 1 Ampere = 10 Volt :)

von Peter B. (pbuenger)


Lesenswert?

> Bei einem 10 Ohm Widerstand sind 0,1 Volt dann 1 Ampere.

Ach was!

von Alexander S. (esko) Benutzerseite


Lesenswert?

ReinHerR schrieb:
> lege einen Widerstand in die Masse-Rückleitung, also in der Masse
> zwischen C2 und C3 rein. Am Fußpunkt vom C2 kannst Du dann direkt
> den ADC anschließen.

Das ist natürlich Quatsch, weil er den ADC des des Atmega nicht an ein 
Potential kleiner 0V anschließen kann.

von ReinHerR (Gast)


Lesenswert?

Joachim B. schrieb:
> ReinHerR schrieb:
>> Bei einem 10 Ohm Widerstand sind 0,1 Volt
>> dann 1 Ampere.
>
Okay, natürlich andersherum. Bin wohl schon bei Weihnachten rolleyes
Gruß
ReinHerR

von Martin L. (martin_l22)


Lesenswert?

Ich widerspreche jetzt nur ungern, aber ich sehe an dem foto kein 
steuerbaustein der
Auch nur ansatzweise einen zweiten kreis bei einer höheren 
leistungsanforderung
Schalten könnte. Daher würde ich sagen unten links der heizer ist 
einfach falsch
Für das gerät. Eventuell wenn ein n vorhanden währe, könnte das ding 
vielleicht
Besser heizen aber die chancen hierfür sind sehr gering.

Desweiteren sehe ich keinen stb? Muss der nicht eigentlich ein 
eigenständiges
Bauteil sein? Hat man den schon mal weg rationalisiert?
Stb - sicherheits temperatur begrenzer...

Mfg!

von Rubelus (Gast)


Lesenswert?

Martin L. schrieb:
> Ich widerspreche jetzt nur ungern, aber ich sehe an dem foto kein
> steuerbaustein der
> Auch nur ansatzweise einen zweiten kreis bei einer höheren
> leistungsanforderung
> Schalten könnte. Daher würde ich sagen unten links der heizer ist
> einfach falsch
> Für das gerät. Eventuell wenn ein n vorhanden währe, könnte das ding
> vielleicht
> Besser heizen aber die chancen hierfür sind sehr gering.
>
> Desweiteren sehe ich keinen stb? Muss der nicht eigentlich ein
> eigenständiges
> Bauteil sein? Hat man den schon mal weg rationalisiert?
> Stb - sicherheits temperatur begrenzer...


???

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.