Forum: Analoge Elektronik und Schaltungstechnik Logarithmierer zur Widerstandsmessung


von Dennis  . (nqtronix)



Lesenswert?

Das Ziel ist die Messung eines Widerstandes, der mit einem Anschlusss 
auf Masse liegt. Es sollen 32 Werte, die logarthimisch von 1k bis 1000k 
verteilt sind, sicher unterschieden werden. Die Spannung, die über dem 
Widerstand anliegt sollte relativ klein (<0.5V) sein. Die Messung 
erfolgt über einen atmega328pb.

Entscheidend ist, dass die Lösung wenig Platz einnimmt, Bauteile der 
Größenordnung SOT-323, SOD-523 sowie 0402 wären ideal. Wenn möglich 
würde ich gerne auf Spezialbauteile verzichten.


Lösungsansatz Logarithmierer:
Der Strom durch die BE Diode von Q1 wird durch R1 bestimmt. Q2 dient als 
Temperaturkompensation. Die Transistoren wurden gewählt weil ihre 
Kennlinie linearer ist als die von 1N4148 Dioden und sie als 
Doppeltransistor im SOT-323-6 verfügbar sind. Der LM321 ist ebenfalls im 
SOT-323 zu haben. Schön ist auch, das ein ADC pin zur Messung ausreicht.

Problem:
Obwohl Q2 effektiv den Offset beseitigt so bleibt eine 
Temperaturabhängigkeit vorhanden. Selbst im Bereich von 0-40°C beträgt 
der Fehler an den Rändern des Messbereiches 12mV. Um sicher die 32 Werte 
zu unterscheiden darf die Abeichung jedoch maximal 170mV/32 ≈ 5mV 
betragen.


Woher kommt die verbleibende Temperaturabhängigkeit? Gibt es eine 
Möglichkeit diese zu beseitigen?
Falls euch eine bessere Lösung für das Problem einfällt wäre ich sehr 
dankbar.

Dennis

von ArnoR (Gast)


Lesenswert?

Der TK der Ube ist stromabhängig. -> Beide Transistoren müssten immer 
mit gleichem Strom arbeiten.

von Dennis  . (nqtronix)


Lesenswert?

Danke schonmal für den Hinweis, das war mir nicht bewusst. Blöderweise 
weis ich auch nicht, wie ich die Ströme angleichen kann. Einen einfachen 
Stromspiegel in die mitte zu packen geht auf jeden Fall nicht.

von Helmut S. (helmuts)


Angehängte Dateien:

Lesenswert?

Schau dir mal das an. Dafür müsstest du dir einen PT1000 Widerstand und 
möglichst 1kOhm Präzionswiderstände(kleiner Temperaturkoeffizient) 
kaufen. Dein Opamp sollte einen kleinen Eingangsstrom haben. Deshalb ist 
dein LM324 keine  gute Wahl. Außerdem sollest du idealerweise einen 
Dualtransistor nehmen damit die beiden Transistoren immer die gleiche 
Temperatur haben.

: Bearbeitet durch User
von Possetitjel (Gast)


Lesenswert?

Dennis  . schrieb:

> Falls euch eine bessere Lösung für das Problem einfällt
> wäre ich sehr dankbar.

Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
30kOhm bis 1Mohm.
Grundprinzip "Spannungsteiler": Großen Widerstand (300kOhm)
fest gegen U_b, kleinen Widerstand (10kOhm) schaltbar über
Portpin.

von Siggi (Gast)


Lesenswert?

Ich würde den Strom in logarithmischen Schritten erhöhen bis eine 
Spannung Deiner Wahl überschritten wird.

Zum Beispiel:
1
 
2
  1 Ohm   1 A
3
   2 Ohm   0,5 A
4
   4 Ohm   0,25 A
5
   8 Ohm   0,125 A
6
  16 Ohm   0,0625 A
7
  32 Ohm   0,03125 A
8
  64 Ohm   0,015625 A
9
 128 Ohm   0,0078125 A
10
 256 Ohm   0,00390625 A
11
 512 Ohm   0,001953125 A
12
1024 Ohm   0,000976562 A

von Pandur S. (jetztnicht)


Lesenswert?

Eins zu Tausen sind ja nur 10 bit. Dafuer wuerd ich mir keinen 
Logarithmierer antun. Allenfalls einen externen 24bit ADC verwenden.

von Jim (Gast)


Angehängte Dateien:

Lesenswert?

Possetitjel schrieb:
> Dennis  . schrieb:
>
>> Falls euch eine bessere Lösung für das Problem einfällt
>> wäre ich sehr dankbar.
>
> Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
> umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
> 30kOhm bis 1Mohm.
> Grundprinzip "Spannungsteiler": Großen Widerstand (300kOhm)
> fest gegen U_b, kleinen Widerstand (10kOhm) schaltbar über
> Portpinn

Habe soeben den Vorschlag simuliert. Funktioniert bestens.

von Harald W. (wilhelms)


Lesenswert?

Jim schrieb:

> Habe soeben den Vorschlag simuliert. Funktioniert bestens.

Mit den idealen Widerständen eines Simulators ist das
ja auch kein Problem. Ich glaube allerdings nicht, das
Dennies mit einer reinen Simulation zufrieden ist.

von Jim (Gast)


Lesenswert?

Harald W. schrieb:
> Jim schrieb:
>
>> Habe soeben den Vorschlag simuliert. Funktioniert bestens.
>
> Mit den idealen Widerständen eines Simulators ist das
> ja auch kein Problem. Ich glaube allerdings nicht, das
> Dennies mit einer reinen Simulation zufrieden ist.

Mit 5% genauen Widerständen gibt es auch im schlimmsten Fall keine 
Probleme. Nur der fixe 150k und der zuschaltbare 5k6 sollten genauer 
sein. Sehe dein Problem nicht...

von reihaus (Gast)


Lesenswert?


von Dennis  . (nqtronix)


Lesenswert?

Helmut S. schrieb:
> Schau dir mal das an.

Das Ergebnis ist perfekt! Leider denke ich nicht, dass ich einen 4x 
opamp im tssop-14 Gehäuse noch unterkriegen würde, und kleiner ist für 
mich privat umständlich zu löten. Hab aber die Schaltung in meine 
Sammlung aufgenommen, falls ich es mal wieder brauche. Danke!


Possetitjel schrieb:
> Wenn es die Ressourcen hergeben, würde ich eine Messbereichs-
> umschaltung vorsehen. Ein Bereich 1kOhm - 30kOhm, der andere
> 30kOhm bis 1Mohm.

Sehr gute Idee, insbesondere sehr handlich klein.

Jim schrieb:
> Habe soeben den Vorschlag simuliert. Funktioniert bestens.

Hab selbst gerade simuliert, ich komme auf sehr gute Ergebnisse, 26bit 
Differenz zwischen zwei Werten im worst case. Bei 1% Widerständen bleibt 
da selbst mit den üblichen 100ppm/°C bei -40-125°C reichlich Abstand.

Vielen Dank euch beiden für so eine simple aber effektive Lösung!
Es funktioniert sogar so gut, dass ich es ohne Umschaltung versuchen 
werde, da I/Os Mangelware im Design sind. Im worst case stehen dann 
immernoch 12 bit Abstand zur Verfügung, 5% Widerstandstoleranz 
eingerechnet.


Nochmal vielen Dank an alle, ihr hab mir sehr gut weitergeholfen!

Dennis


[closed]

von Patrick C. (pcrom)


Lesenswert?

Vorschlag, vielleicht eine loesung :
Nimm ein uC mit current-dac output und adc input und mach es voellig von 
Software. (zB PSOC-3, PSOC-5Lp). Neben uC wahrscheinlich keine weitere 
komponenten benoetigd
Abhangig natuerlich was weiter notig ist.

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.