Hier ist die Grundidee:
V1 ist der gefilterte PWM-Ausgang und R2 ist Ihr Sensor. U1 ist ein Spannungs-Strom-Wandler, wobei der Strom durch die Last R1 I = V1 / R2 ist. Dies bedeutet, dass die Spannung an R1 von beiden Eingängen abhängt. U2 und U3 ist ein Instrumentenverstärker mit Verstärkung 10, der die Spannung an R1 verstärkt.
Mit R1 = 100 Ohm und V1 = 0,5 V arbeitet die Schaltung für R2 = 50,5000, z. B. über zwei Größenordnungen, was nach Ihren Angaben ausreichen sollte.
Sie nehmen es heraus und vergleichen es mit der Referenzspannung (4 V wären hier für den maximalen Dynamikbereich geeignet) und verwenden die sukzessive Approximation an V1, um so nahe wie möglich an der Referenzspannung herauszukommen. Aus V1 und dem bekannten Spannungsabfall an R1 (z. B. Referenzspannung) können Sie jetzt den Wert von R2, Ihrem Sensor, berechnen. Dies führt natürlich nur zu einem Ergebnis innerhalb der Auflösung von PWM. Sie können jedoch einen zweiten Instrumentenverstärker verwenden, um den Fehler (Differenz zwischen Ausgangs- und Referenzspannung) zu verstärken und ihn in den Bereich des ADC Ihres Mikrocontrollers zu bringen. Dadurch erhalten Sie zusätzliche Bits der Auflösung.
Sie benötigen zwei Operationsverstärker (U1 und Komparator) und zwei Instrumentenverstärker. Verwenden Sie echte, anstatt sie aus Operationsverstärkern herzustellen, da die Ungenauigkeiten von Widerständen und Operationsverstärkern zu Fehlern führen.
Wenn zwei Größenordnungen nicht ausreichen, können Sie R1 durch ein digitales Potentiometer ersetzen, um einen weiteren Freiheitsgrad zu erhalten. Ich habe noch nie mit einem gearbeitet, daher weiß ich nicht, wie genau sie sind und ob eine solche Lösung eine Kalibrierung erfordern würde oder nicht.
Ich sollte auch erwähnen, dass es jpc war, der mit der Idee kam.
AKTUALISIEREN:
Ok, ich muss OP zustimmen, dass dies nicht wirklich die Antwort auf seine Frage ist (obwohl es das Problem technisch löst). Ich ließ mich von einem "adaptiven Verstärker" im Titel als Ausrede für ein analoges Design mitreißen. Vergessen Sie alles, was oben geschrieben wurde, es sei denn, Sie möchten etwas (wenig) über Opamps lernen. Ich hoffe, hier ist eine bessere Antwort und eine viel einfachere Lösung:
Verwenden Sie einen Widerstandsteiler, der von einem Spannungsregler gespeist wird (um ihn vom Rauschen anderer Schaltkreise zu trennen), wobei der obere Widerstand auf ungefähr den maximalen Widerstand eingestellt ist, den Ihre Sensoren haben können (Rmax), und der untere Widerstand der Sensor ist.
Stellen Sie die Referenzspannung für Ihren ADC auf die Hälfte des Ausgangs des Spannungsreglers ein.
Anschließend messen Sie die Spannung am Sensor mit Ihrem ADC. Auf diese Weise benötigen Sie nur einen Single-Ended-Kanal pro Sensor. Ich habe im anderen Beitrag eine ADC-Empfehlung abgegeben.
Wenn Sie einen 10-Bit-ADC verwenden, der in die von Ihnen erwähnten Mikrocontroller integriert ist, erhalten Sie jedoch keinen großen Dynamikbereich. Wenn Sie den Bereich mithilfe einer analogen Schaltung erweitern, wie ich sie ursprünglich veröffentlicht habe, werden zu viele zusätzliche Teile hinzugefügt. Aus diesem Grund würde ich empfehlen, einfach einen 24-Bit-ADC zu verwenden, wie den ADS1256, den ich im anderen Beitrag empfohlen habe, da dies Ihnen helfen wird Geringes Rauschen und hoher Dynamikbereich in einem einzigen Chip (plus der winzigen Referenz und dem Spannungsregler, der ebenfalls winzig sein kann - Sie können auch versuchen, den Regler wegzulassen und den Widerstandsteiler direkt von der Referenz aus mit Strom zu versorgen). Dies wird Ihnen 1 Bit Auflösung rauben, aber es gibt trotzdem viele davon. Sie müssen einige Zahlen eingeben ("Automatische Kalibrierung durch Auffinden von Min- und Max-Werten in einem bestimmten Analysefenster" - ist eine gute Idee),
Ich hoffe das ist etwas nützlicher.
UPDATE 2:
Dies ist der letzte: Ich habe MSP430-Mikrocontroller von TI durchlaufen und festgestellt, dass einige von ihnen über einen 16-Bit-Sigma-Delta-ADC mit interner Referenz verfügen. Nämlich MSP430F2003 und MSP430F20013 . Das wäre Ihre Ein-Chip-Lösung, wenn Sie bereit wären, Atmels aufzugeben. Sehr geringe Leistung auch. Und sie haben Mikrocontroller mit 24 ADCs in der Warteschlange, aber diese sind noch nicht in Produktion. Dann gibt es auch PSoC-Mikrocontroller von Cypress, die 20-Bit-Sigma-Delta-ADCs ( PSoC 3- und PSoC 5- Serie) haben, ebenfalls mit Bezug. Diese wären noch besser.