Messung kleiner Widerstände (0,5-50Ohm)

Hallo,

ich würde gerne mit einem Arduino den Widerstand von Magnetspulen messen. Normalerweise liegt der Widerstand dieser Spulen im Bereich 4-30Ohm. Hier sollte die Genauigkeit besser 0,5Ohm sein.
Zusätzlich möchte ich den Fehlerfall einer hochohmigen Spule ebenfalls messen können (einige kOhm). Hierbei ist allerdings die Genauigkeit nicht wichtig.

Mein Testaufbau ist ähnlich den Autoranging Beispielen,, wo verschiedene Widerstände als Spannungsteiler zu dem Testwiderstand geschalten werden. So zum Beispiel:

Allerdings habe ich das Problem, das selbst mit dem 220Ohm Widerstand die Genaugigkeit zu gering ist, da die Spannung, die an der Spule abfällt im Bereich der ADC Genauigkeit liegt.

Gibt es statt der Spannungsteiler Lösung eine bessere Art geringe Widerstände zu messen?

Du könntest statt mit 5V den AD mit der internen Referenz 1,1V betreiben.
Du könntest einen OP verwenden, um das Signal zu verstärken.
Du könntest eine (geschaltene) Konstantstromquelle verwenden.

ich bin mir sicher, Tante Google hat noch einige andere Vorschläge....

Hallo,

Ein Problem hierbei wird sein, dass bei den relativ kleinen Widerständen eine Erwärmung der Widerstände/spulen nicht zu vermeiden sein wird, was wiederum den Widerstand beeinflußt.

Dann hast du noch das Problem, dass du, um den Stromfluß im verträglichen Rahmen zu halten, einen hohen Widerstand wählen mußt, der dir den Gegenspieler zu dem zu messenden Widerstand darstellt. Du wirst somit immer einen sehr kleinen Spannungsabfall an dem zu messenden Widerstand haben, was deine Genauigkeit einschränkt. Du kannst es etwas kompensieren in dem du ein Arduino- kompatibles Board mit höher auflösendem ADC verwendest. Eleganter und genauer wird es mit einem Messverstärker, zumindest eine einfache Schaltung mit OPV zur Spannungsverstärkung.

Gibt es statt der Spannungsteiler Lösung eine bessere Art geringe Widerstände zu messen?

Nicht wirklich.....

Wenn du einen Arduino Mega verwendest, könntest du mit dem eingebauten Verstärker, das Signal um bis zu 200 fach verstärken.

Zu 1.)
Aref auf 1,1V stellen bringt etwas Besserung, allerdings habe ich dann Probleme mit den Bereichtsumschaltung, da die DigitalPins ja weiterhin 5V bringen. Lässt sich aber sicherlich softwaretechnisch lösen. Schaue ich mir nochmal genauer an.

Zu 2.) Hierzu fehlen mir leider noch etwas die Grundlagen, scheint aber die sauberste Lösung zu werden. Allerdings habe ich bei den meisten Beispielen gesehen, dass die OPV immer eine positive und negative Spannung benötigen. Das Testgerät soll allerdings mit einer 9V Blockbatterie versorgt werden.
Kennt jemand eine Lösung, die vielleicht auch nur mit 5V auskommt?

Zu 3.) Müsste hier nicht ein sehr großer Strom fließen, um einigermaßen genau zu messen? Denke das schließt dann die Versorgung über eine 9V Batterie aus?!

Aus Platzgründen würde ich gerne ein Arduino Nano einsetzen.

Vielleicht hilft Dir dieser Artikel weiter: Messen kleiner Widerstaende

LG Stefan

Ich habe mir das jetzt nochmal genau angesehen, ich denke, das sollte mit einem normalen Spannungsteiler funktionieren.

Rechenbeispiel:
Spannungsteiler von 5V mit 220R und Spule 4R auf GND.
Querstrom Iq = 22mA
Ausgangsspannung Ua = 89mV
AD-Wert: 18

Auflösung: 0,22 Ohm/bit.

Die Ungenauigkeit der Versorgung kürzt sich raus.
Bleibt die Genauigkeit des ADC. Die ist mir 2 LSB angegeben und dieser Wert kann mit Oversampling nochmal reduziert werden. Die geforderte Genauigkeit von 0,5R sollte also darzustellen sein, wenn der 220Ohm Vorwiderstand entsprechend genau bekannt ist.

Die Genauigkeit kann verbessert werden, wenn kleinere Vorwiderstände verwendet werden.
Mit Rv=100 Ohm kommt man auf
Iq=50mA
Ua=0,2V
AD= 39
Auflösung: 0,1 Ohm/bit

50mA sind viel für einen 9V Block, aber wenn der Strom z.B. über einen FET geschalten wird, kann man die Zeit sehr kurz halten. (Aber die Stromaufnahme des Arduino und eines Displays sind auch nicht ohne)

Eine Bereichsumschaltung ist nicht nötig. Mit der Schaltung können selbst 50k problemlos erkannt werden.

Man könnte das Problem Strom vs. Genauigkeit entschärfen, in dem man den AD mit 1V Referenz betreibt, die man sich über Präzisionsspannungsteiler und Impedanzwandler aus den 5V ableitet, handelt sich dann aber wieder Ungenauigkeiten ein. Ich denke, für wirklich mehr Genauigkeit wäre es dann besser, einen externen Präzisions-AD-Wandler zu verwenden.

Aber vorher würde ich die oben skizzierte Lösung nochmal durchrechnen und ausprobieren. Es sollte eigentlich reichen.

Ein sehr einfaches , präzises Milliohm-Meter ist bei :

https://www.experimental-engineering.co.uk/arduino-milliohm-meter-build/

beschrieben.
Es verwendet den preiswerten 16/15 bit ADC ADS1115 und benötigt nur einen
Messwiderstand mit möglichst geringem TC. Der genaue Wert ist (10 Ohm) - falls bekannt - kann im Programm korrigiert werden.
Der Messbereich geht durchgehend von … µOhm bis 10 k Ohm .
Ich habe einen höheren Messwiderstand verwendet (100 Ohm), der kleinste Messwert liegt dann bei etwa 300 µOhm, der Messbereich geht bis 100 k Ohm.

Da noch einige Pins des Arduino Nano frei waren, hab ich noch ein C und L-Messgerät eingebaut.

Der Kapazitätsbereich geht von 1-2 pF bis ca 20 µF, der L -Messberich beginnt unterhalb 10 µH.

(deleted)

Hallo mausi_mick,

keine Ahnung warum man 2.5 Jahre später hier noch was anhängen muss, dabei wäre Dein Messgerät interessant genug für einen eigenen Thread! Mich würde schon interessieren, wie jetzt der geänderte Schaltplan aussieht, und wenn Du magst auch den Sketch zeigen.
Ich habe mich auch schon mit einem mOhm-Messgerät auf Arduino-Basis beschäftigt, aber noch nicht gebaut.

Gruß André

ja, ich wusste nicht, dass da noch weiteres Interesse besteht …

Hab das Gerät (fast) fertig, bis auf das Gehäuse, dass mittlerweile etwas eng und chaotisch ist.

zuerst mal was zu den Hauptkomponenten:

  • Arduino Nano V3 (Clone)
  • ADS1115 15/16 bit Version
  • OLED-Display SSD1306 0.96" I2C
  • Messwiderstand 100 Ohm (1% oder genauer, niedriger TC)
    (der Messstrom beträgt bei 100 Ohm maximal dann maximal ca 43 mA
    gegenüber ca 200 mA ( bei 10 Ohm))
  • Referenzkondensator ca 2 µF Folie (Wert muss möglichst genau ausgemessen werden)
  • Lion-Akku 3,7V , > 500mAh
  • Lion_Akku-Lademodul (Micro-USB)
  • Step-Up Wandler MT3608 (3.6V nach 5.0/5.2V)
  • Komparator für L-Messung (ich verwende TLC372, da 8-polig,relativ schnell und hochohmig)

verwendete Quellen:

https://circuitcellar.com/cc-blog/build-an-accurate-milliohm-meter/

Capacitance Meter Mk II | PIC Tutorials

http://www.electronoobs.com/eng_arduino_tut10_3.php

wobei die letzte Quelle nicht so eindeutig (Urheber ?) ist.

Nach der Realisierung des milli-Ohmmeters waren noch einige Pins am Nano ungenutzt,
D10-D13 und A6,A7 wobei letztere reine analog-Pins sind ohne Verwendung als Digital-Pin.
D13 schien mir auch kritisch, da er mit der internen LED belegt ist.
D10 und D11 hab ich für die L-Messung benutzt, blieben noch D12, D13 und A6,A7 für das Umschalten zwischen R,C,L übrig.
A6 nutze ich zur Messung der Akkuspannung (über Vorwiderstand).
A7 wollte ich zu Umschalten nutzen (z.B: val <=100: Ohm-Meter, val>=900: C-Meter, 300<val < 750: L-Meter) ,
hat auch im Prinzip funktioniert, aber die C-Messung versaut: kamen keine sinnvollen Werte raus.
Keine Ahnung, warum andere Analogeingänge durch A7 beeinträchtigt werden.
Vielleicht hängt das damit zusammen, dass kleine Kapazitäten gegen Masse (schwebend/Streukapazität) gemessen werden.
Deswegen versuchte ich das Umschalten dann über die beiden DigtalPins D12,D13 zu realisieren, das machte aber auch Ärger wegen der LED an PIN13 .
Hab dann zum Lötkolben gegriffen und den 1k Ohm-Widerstand vor der LED entfernt !

und hier ein kleines wackliges Video: - YouTube

mausi-mick

Hi mausi-mick,

deine Quellen kenne ich alle, da ich mich durchaus erstmal im Netz umschaue, wie andere Leute an solche Projekte herangehen. Hier >>> Zeigt her eure geilen Projekte ! - Deutsch - Arduino Forum (Seite 39 #574) hatte ich mal eine kleine Bastelei mit dem wunderschönen Namen "Mess-Dingens" vorgestellt. Die Hardware ist geblieben, aber der Sketch lebt, es wird immer mal was angepasst, und ich kann damit 0.5 Ohm bis 200MOhm mit etwa 0.5% Genauigkeit messen.
Ebenso Kondensatoren ab etwa 10.0pF (10%), 100.0pF (1%), zwischen 1.000nF und ein paar µF mit einer Wiederholgenauigkeit von ~ 0.1% wenn es Folienkondensatoren sind. Elkos kann ich mittlerweile bis 100mF messen ohne ewig zu warten, bei 16mF sind es ~ 2.5 Sekunden. Induktivitäten messe ich auf einer anderen Hardware (LM311) und habe ab ~ 50.0 nH gescheite Ergebnisse, das sind Luftspulen mit 5 Windungen, und 5mm Durchmesser, aber verwende es vor allem ab 1µH aufwärts. Das mOhm-Meter habe ich leicht abgewandelt in Planung ...

Gruß André

Hi SpaghettiCode,

hab Deine Seiten kurz überflogen, macht einen super Eindruck. Werd ich mir noch detailliert ansehen auch den

“SpaghettiCode” !! :slight_smile:

Bei dem Schalttransistor würde ich heute eher ein Photomosrelais nehmen (z:B. TLT222) ,
das ein max. ON-Widerstand von 2 Ohm hat mit nur minimalem TK.
Da gibt es dann keinen Ärger mit dem Basisstrom und Restströmen. Aber es scheint ja auch so sehr präzise zu arbeiten.

Ich werd mir das aber alles noch mal gründlich ansehen.

Und - meinen - Spaghetticode noch kräftig entnudeln.
Mich hat aber bei “meinem” Projekt gewundert, dass man mit Streukapazitäten überhaupt was sinnvolles anfangen kann,
höchstens heute abend, wo es in und um München etwas schneit.

Falls Interesse, werde ich den SourceCode hier reinstellen.

Hi,

mittlerweilen habe ich mir zum messen Funktionen geschrieben, aber der Rest ist immernoch weit weg von schönem Code :wink:
Das Problem ist, das Provisorien doch recht lange halten :grin:
Was Du als Stromquelle bezeichnest schaltet mir die 20 Ohm zum ratiometrischem messen ein, ansonsten soll da aber kein Reststrom fließen, der bei MOSFETs laut Datenblatt 10x höher als bei npn/pnp ist! Es wird also die Spannung über dem bekannten 20Ohm Widerstand und dem Rx quasi gleichzeitig gemessen. Am gleichen Knoten hängt ja ein 2MOhm Widerstand der mir offen um die 600MOhm misst, aber allerspätestens ab 200MOhm nur noch ein Daumenwert ist.
Da brauche ich keinen Leckstrom.
Das Ding mit den Streukapazitäten habe ich mir auch angesehen/getestet, finde ich auch klasse! Ich wollte halt wissen, wie weit ich mit meiner Variante komme, und brauche nur genaue Widerstände (0.1%) um auf die Kapazität zu kommen.
Und ja, Dein SourceCode interessiert mich schon, man lernt ja nie aus.
Ansonsten gebe ich Dir Recht, RLC-Messen hat was von Grundlagenforschung, da fällt kein neues Super-Dingens-Handy raus :grin:

Gruß André

Hi Andre,

da ich ja als Messwiderstand 100 Ohm verwende, brauche ich für die maximal 43,48 mA nicht 2x4 Pins parallel, sondern 2x2 reichen völlig, sodass ich 4 Pins frei hätte. Da könnte ich eventuell 2 für die Widerstandsbereiche 1 MOhm und 10 MOhm verwenden, AnalogPin 7 zum Messen (und ich hätte D2 oder D3 noch frei für den Switch R-C-L über ISR).

Gruß Kalle

Hi Kalle,

ja, Du hättest 4 Pins frei. Vergiss aber bitte nicht, daß bei so hohen Widerständen des Spannungsteilers ein kleiner Kondensator (~1nF) zum puffern dran muss, sonst bekommst Du keine sonderlich stabilen Werte, da der Sample & Hold Kondensator im Moment des aufladens Strom zieht. Ist er zu groß, dann "übersieht" er glatt sehr hochohmige Widerstände im MOhm-Bereich. :confused: ... und dann auch an Tau = R * C denken ...

Gruß André

Hi Andre,

Hab da heute noch Mit Deinem Programm auf einem Breadboard experimentiert (nur für den 2M Ohm und 200 k Ohm Bereich). Die Widerstände kämen dann an D4 bzw. D5. Als Analog-Eingang nehme ich A6 (bisher für Bat-Spannung (Lion-Akku), werde ich aber an A7 umhängen.) Die beiden Widerstände passen dann gut unter den NANO.

Die Widerstandsmessung klappt sehr gut ( ich will eigentlich nur den Bereich von 100 K Ohm bis 5 … M Ohm
abdecken). Auch beeinträchtigt sie nicht die Kapazitätsmessung ("Streukapazität").
Werde wohl ein neues Board designen müssen …

Gruss Kalle

Hi,

der MOhm-Bereich ist für mich vor allem zur Sperrstrommessung bei Dioden vorgesehen, deshalb "messe" ich bis 200 MOhm, ansonsten reichen tatsächlich 10 MOhm, größere Widerstände habe ich nicht. In diesem Bereich rechne ich mit der Formel für belastete Spannungsteiler auch noch das bisschen Strom raus, den der ADC via Sample & Hold Kondensator nimmt. Bei mir wären es als Beispiel, wenn ich im 2 MOhm-Bereich einen 10 MOhm messe, angezeigte 9.95 MOhm, da der ADC-Eingang sich bei mir etwa als 2 GOhm Last darstellt. Hatte da verschieden Tests gemacht.
Würde mich wundern wenn Du mit meinem Spaghetticode klar kommst :grin:

Gruß André

Hi,

hab die vier Widerstände ausgebaut und hab die Pins D2, D3, D4 und D5 frei, hab dann die 2M-Ohm zwischen
D4 und A6 und die 200k-Ohm zwischen D5 und A6.
Anstelle der Schalter an D12/D13 zum switchen zwischen R, C, L hab ich jetzt einen Taster an D2, den ich über ISR abfrage.

Die Messungen waren in allen Bereichen erfolgreich, nur muss ich höhere Widerstände an A6 und Ground klemmen.

Muss mich wohl jetzt um ein vernünftigeres Gehäuse kümmern. :confused:

Kalle

Hi,

Habe heute die Frontplatte (Plexi) neu gemacht, da das doch etwas eng war und etwas mitgenommen aussah.

Zusätzlich - es war ja noch ein Interrupt-Pin (D3) frei - hab ich noch einen Frequenzmesser integriert (zeigt aber momentan nur 50 Hz an, da mir ein vernünftiges Signal fehlt).
Hab dann doch mal einen 10 M Ohm Widerstand gemessen, zeigt 9987 an, am 7 stelligen Solartron les ich 9981 ab. Frage - welches ist genauer ! (das Solartron ist aber geschätzt 10 Jahre nicht mehr kalibriert).