Strommessung mit AVR (0,1mA bis 100mA)

OP #7564849
Lesenswert?

Ich möchte mit einem AVR Ströme von 0,1 bis 100mA messen.

Die Auflösung (sowie die Genauigkeit) sollte bis 10mA bei 0,1mA liegen, von 10 bis 100mA genügen mir 1mA.

Den Shunt möchte ich wegen des Spannungsabfalls möglichst klein halten, da der Verbraucher mit nur 0,8 bis 1,3 Volt versorgt wird. Ich dachte an 0,1 Ohm.

Meine Frage: Kann ich einfach zwei ADC-Eingänge eines handelsüblichen AVRs verwenden und den Strom aus der Spannungsdifferenz berechnen? Oder machen mir Störungen meine Messung der geringen Spannungsdifferenz zunichte?

Sicher eine blöde Frage, aber ich habe so was noch nie gemacht.

#7564854
Lesenswert?

Tim 🔆 schrieb:

Ströme von 0,1 bis 100mA messen.

Tim 🔆 schrieb:

Ich dachte an 0,1 Ohm.

0,1mA * 0,1Ω = 0,01mV = 10μV

Tim 🔆 schrieb:

Die Auflösung (sowie die Genauigkeit)

Da bleiben dir zuwenig ADC-counts übrig.

Nimm einen Mikrocontroller mit eingebautem Differenzverstärker.

Wenn es kein Problem ist, Strom am Minus des Verbrauchers zu messen, kann es auch ein älterer AVR mit Verstärker gegen GND sein.

Eine passende Referenzquelle für den ADC musst du auch verwenden, weil sonst alles ratiometrisch zu AVCC ist.

mfg mf

#7564855
Lesenswert?

Es gibt AVRs mit umschaltbarem Verstärker am ADC, ATTiny45/85 als kleinster Vertreter. Der hätte 1× oder 20× Verstärkung, damit könnte man eine Messbereichsumschaltung machen. Ob das für die gewünschte Auflösung reicht, und ob dein Shunt klein genug wird, kannst du für deinen 0.1er Vorschlag ja mal ausrechnen.

#7564864
Lesenswert?

Tim 🔆 schrieb:

Ich dachte an 0,1 Ohm.

Hallo,

ich würde erst mal die geringe Spannung, die am Shunt abfällt, mittels eines OPV in nichtinvertierender Schaltung verstärken, um sie dann erst auf den ADC-Eingang zu geben. DAfür habe ich mir z.B. MCP6002 ausgesucht, wobei ein Offsetabgleich nicht verkehrt wäre. Allerdings gibt es bessere Typen, was niedrige Offsetspannung angeht.

Parallel zum Shunt würde ich noch antiparellele Dioden vorsehen.

mfg

#7564903
Lesenswert?

Bruno V. schrieb:

Gerne mit Trimpotis in Reihe zum manuellem Abgleich.

Den EEPROM darf man ruhig benutzen und Gain+Offset für jeden Bereich als float abspeichern.

Ich habe in einem Projekt auch eine manuelle Kalibrierung einprogrammiert. Dazu muß man über die UART den Meßwert für 2 Spannungen eingeben und der MC berechnet daraus Gain+Offset (Geradengleichung). Ob der kleinere Wert zuerst kommt, ist egal, float rechnet ja signed. Man muß natürlich den ADC-Wert (unsigned) vor der Berechnung nach float casten. Mit einem Store-Kommando werden sie im EEEPROM abgelegt, optional mit String (Name, Datum).

#7564912
Lesenswert?

Peter D. schrieb:

Den EEPROM darf man ruhig benutzen und Gain+Offset für jeden Bereich als float abspeichern.

Natürlich geht das. Aber der TO ist völliger Anfänger. Da ist jeder Teilaspekt eine Herausforderung, auch eine Schaltung mit so einer Verstärkung.

Beim manuellen Abgleich bekommt man ein Gefühl für die Empfindlichkeit, es erleichtert die ADC-Skalierung und kommt komplett ohne EEProm aus.

Nach 30 oder 40 Jahren vergessen wir gerne unsere Startschwierigkeiten.

Gast #7564926
Lesenswert?

Dieter D. schrieb:

Fertige Bausteine waeren der INA260

Auf 0,1mA kommt der glaube ich nicht, ebensowenig der CT220 den ich gern verwende. Vielleicht lässt sich ja noch was an den Ansprüchen drehen :)

Als Controller einer Selbstbaulösung mit Shunt könnte ich Dir die neuen, analog-affinen AVR-EA 8Bitter mit Differential 12Bit ADC + 16fach PGA Verstärker ans Herz legen.

#7564947
Lesenswert?

Tim 🔆 schrieb:

: Kann ich einfach zwei ADC-Eingänge eines handelsüblichen AVRs verwenden und den Strom aus der Spannungsdifferenz berechnen

Nein.

0.1mA an 0.1 Ohm sind 10uV, wenn deine ADC Eingänge bis 1.3V messen müssen und 10 bit Auflösung haben lösen sie nur 1.3mV auf.

Das hättest du aber selber ausrechnen können.

Moderne AVR bieten PGA Differenzverstärkereingänge und 12 bit ADC, und können die die Differenz von bis zu 10mV am shunt direkt messen und z.B. um 16 auf 0.16V verstärken und daher 16uV am shu t auflösen. Reicht auch nicht ganz.

Daher ist ein externer OpAmp besser. Oder gar ein externer ADC

#7565008
Lesenswert?

Tim 🔆 schrieb:

Ich möchte mit einem AVR Ströme von 0,1 bis 100mA messen.

Das geht schon. Ich habe mal die Differential-Messung eines T861 mit der maximalen Verstärkung V=32 untersucht: Beitrag "Re: ADC-Differential-Messung" Bei dem gemessenen Tiny861 war der Fehler unter einem Rohwert, wenn man nicht die Rohwertgrenzen voll ausnutzt. Weiter oben in dem Threat ist ein Beispiel für eine Strommessung. Bei Vref=1,1V würde ein Shunt von 0,33 Ohm passen.

OP #7565025
Lesenswert?

Danke für die vielen hilfreichen Antworten.

Der Shunt darf im Minus-Zweig sein, das macht es natürlich einfacher.

Bruno V. schrieb:

Ich würde die Spannung am Shunt in 2 oder 3 parallele OP-Verstärkerstufen geben (z.B. *200, *2000, *20000) und das mit je einem ADC-Eingang auswerten. Gerne mit Trimpotis in Reihe zum manuellem Abgleich.

Das scheint die für mich am einfachsten umzusetzende Lösung. Die Verstärkung kann ich ja auch umschalten. Meine Befürchtung ist aber immer noch, dass ich mir bei den wenigen µV irgendwelche Störungen mit verstärke und nur ein Gezappel am Ausgang herauskommt.

Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation verwendbar sein. Die INA... Stromsensoren hatte ich mir schon angesehen.

Hermann W. schrieb:

Das geht schon. Ich habe mal die Differential-Messung eines T861 mit der maximalen Verstärkung V=32 untersucht: Beitrag "Re: ADC-Differential-Messung" Bei dem gemessenen Tiny861 war der Fehler unter einem Rohwert, wenn man nicht die Rohwertgrenzen voll ausnutzt. Weiter oben in dem Threat ist ein Beispiel für eine Strommessung. Bei Vref=1,1V würde ein Shunt von 0,33 Ohm passen.

Danke für den Tipp. Ich habe bei mir ja Bedenken wegen Störungen, sehe aber dass du 100uF und 4k7 am Eingang hast. Schnell muss meine Messung übrigens nicht sein.

Edit: Ich mache einfach mal einen Versuchsaufbau mit einem OpAmp und einem Shunt. Dann melde ich mich ggf. wieder.

#7565046
Lesenswert?

Tim 🔆 schrieb:

Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation verwendbar sein.

Hier im Forum haben einige den µCurrent Gold (erster google link: https://www.welectron.com/EEVBlog-uCurrent-GOLD-Praezisions-Stromadapter-fuer-Multimeter). Ist natürlich mit Kanonen auf Spatzen. Prinzipiell findet man sowas auch in billiger. Und Schaltplan/Stückliste/Layout sind afak frei zugänglich.

Der macht z.B. aus 1mA dann 1V.

#7565049
Lesenswert?

Bruno V. schrieb:

Tim 🔆 schrieb:

Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation verwendbar sein.

Hier im Forum haben einige den µCurrent Gold (erster google link: https://www.welectron.com/EEVBlog-uCurrent-GOLD-Praezisions-Stromadapter-fuer-Multimeter). Ist natürlich mit Kanonen auf Spatzen. Prinzipiell findet man sowas auch in billiger. Und Schaltplan/Stückliste/Layout sind afak frei zugänglich.

Der macht z.B. aus 1mA dann 1V.

Eher 1mV/mA. Sonst müsste er bei 100mA 100V ausgeben;-)

OP #7565075
Lesenswert?

Bruno V. schrieb:

Hier im Forum haben einige den µCurrent Gold

Es kann ja nicht schaden, mir die Schaltung mal anzusehen.

Zur Zeit messe ich die Ströme mit zwei 34401A und die Spannung mit einem weiteren. So genau brauche ich es gar nicht. Um nicht jedes mal alles aufzubauen zu müssen, wollte ich mir eine kompakte Stand-alone-Lösung bauen.

Ich habe eben nachgesehen, LM662CN und TS27M4CN hätte ich da. Ein 0,1 Ohm Widerstand sollte sich auch auffinden lassen. Mit denen kann ich das ja erst mal testen.

#7565081
Lesenswert?

Tim 🔆 schrieb:

Es kann ja nicht schaden, mir die Schaltung mal anzusehen.

Der hat allerdings manuell umschaltbare Shunts. Es gibt da aber auch eine Abwandlung mit automatisch zuschaltenden Shunts ...

Ich würde auch immer eher Strom so in Spannung wandeln, dass man dann Oszilloskop oder Picoscope o.ä. benutzen kann, ohne dass da noch ein AVR zwischenhängt.

LG, Sebastian

(Firma: 1984now) #7565109
Lesenswert?

Peter D. schrieb:

Z.B. der ATmega1284 kann eine Verstärkung von 200 einschalten und 1,1V Referenz. Wie stabil dann eine Messung ist, weiß ich nicht.

Wackelt natürlich recht heftig. Ist aber kein Problem, dagegen gibt es ja schließlich Mittelwertfilter.

Zum Problem wird es erst, wenn man nicht nur relativ genau, sondern obendrein auch relativ schnell/häufig messen muß.

Aber zur nötigen Geschwindigkeit hat sich der TO ja nicht geäußert. Scheint also keinerlei Rolle zu spielen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren