Einfache Widerstandsmessung mit Mikrocontroller

Was ist eine einfache Möglichkeit, den Widerstand (in diesem Fall 0-100 kOhm) mit einem Mikrocontroller zu messen (ich verwende STM32, es hat einen 12-Bit-ADC, einen Timer, aber keinen Komparator). Ich möchte es einfach (nicht zu viele Komponenten) und billig.

Die erste Idee, die ich hatte, war, ADC mit Spannungsteiler zu verwenden. Es bringt jedoch das Problem, die Spannung über einem bekannten Widerstand zu messen, was hyperbolisch vom gemessenen Widerstand abhängt, sodass die tatsächliche Genauigkeit über den Wertebereich des unbekannten Widerstands stark variiert. Es erfordert auch, dass der bekannte Widerstand einen viel kleineren Wert hat als der bekannte, aber das sollte in Ordnung sein, wenn keine große Präzision erforderlich ist.

Anforderungen:

  • Bereich: 0-100 kOhm
  • Präzision: mindestens 1 kOhm, bevorzugt <100 Ohm, aber eigentlich bin ich neugierig (denke über andere mögliche Anwendungen nach, die möglicherweise eine bessere Präzision erfordern), wie hoch (mit Präzision) wir kommen können, ohne zu komplizierte Schaltungen herzustellen.
Welche Eingangsimpedanz hat dein ADC?

Antworten (3)

Verwenden Sie eine spannungsgesteuerte Präzisionsstromquelle, um einen bekannten Strom in den Widerstand einzuspeisen. Wenn der Messwert entweder zu niedrig oder zu hoch ist, stellen Sie die Stromquelle passender ein. Nehmen Sie mehrere Messungen vor und mitteln Sie .... Vielleicht 50 Messungen, um dem Mangel an Bits in Ihrem ADC entgegenzuwirken.

Für hohe Widerstandswerte müssen Sie das Signal zum ADC mit einer Operationsverstärkerschaltung mit Einheitsverstärkung puffern, da der Eingang des ADC eine ziemlich niedrige Impedanz hat.

Die Stromquelle kann unter Verwendung eines DAC aufgebaut werden, um den Bedarf einzustellen. Für maximale Flexibilität werden zwei Transistoren und zwei Operationsverstärker benötigt.

Sie denken vielleicht, dass dies zu komplex ist, aber wenn Sie Ihre Meinung ändern, lassen Sie es mich wissen. Es ist eine anständige Methode, die ich hinzufügen könnte.

@ignacio guter Link, Alter.

Das Problem bei einem Spannungsteiler ist, dass sich bei unterschiedlichen Widerständen nicht nur die Spannung ändert, sondern auch der Strom durch den Gesamtwiderstand. Diese drei ändern sich also mit unterschiedlichen Messungen.

Um den Widerstand zu messen, müssen Sie einen konstanten Strom durch Ihre Sonde aufrechterhalten. Wenn der Strom konstant ist, ist der Spannungsabfall des Widerstands aufgrund von U = I * R direkt mit dem Widerstand verbunden. (V=I*R)

Wenn Sie 0-100 kOhm mit einem VDC messen möchten, max = 5 V, müssen Sie 5 V / 100 kOhm = 50 µA mit einem 12-Bit-ADC anlegen. Sie können eine Mindestspannung von 5/2 ^ 12 = 1,22 mV messen, was einem Mindestwiderstand von 1,22 entspricht mV/50µA = 24,41 Ohm, was gleichzeitig Ihre Genauigkeit ist.

Wenn Sie den zu messenden Widerstand in Reihe mit einem Kondensator verwenden und die Spannung am Kondensator messen können, ist die RC-Zeitkonstante der resultierenden Schaltung proportional zum Widerstand. Ein üblicher Messansatz besteht darin, die Obergrenze auf ein bestimmtes Niveau aufzuladen und dann zu messen, wie lange es dauert, um einen bestimmten Prozentsatz zu entladen. Wenn man die Dinge so anordnet, dass die Obergrenze entweder durch einen bekannten oder den unbekannten Widerstand aufgeladen werden kann, kann man den unbekannten ziemlich genau bestimmen.