mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Logarithmierer zur Widerstandsmessung


Autor: Dennis  . (nqtronix)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ArnoR (Gast)
Datum:

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

Autor: Dennis  . (nqtronix)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Helmut S. (helmuts)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht 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
Autor: Possetitjel (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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.

Autor: Siggi (Gast)
Datum:

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

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

Autor: Zitronen F. (jetztnicht)
Datum:

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

Autor: Jim (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht 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.

Autor: Harald W. (wilhelms)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jim (Gast)
Datum:

Bewertung
1 lesenswert
nicht 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...

Autor: reihaus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Dennis  . (nqtronix)
Datum:

Bewertung
0 lesenswert
nicht 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]

Autor: Patrick C. (pcrom)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.