Verwandt : Hochauflösender ADC für verrauschte Sensoren unter variablen Bedingungen
Ich baue eine Schnittstelle mit resistiven textilbasierten Sensoren, die je nach Umgebungsbedingungen unterschiedliche Widerstandsbereiche haben können. Um meine A/D-Wandler optimal zu nutzen, würde ich gerne einen adaptiven Verstärker verwenden, der dabei hilft, die unzuverlässige Leistung der Sensoren zu kompensieren.
Welche Möglichkeiten habe ich hier? Oder können Sie mir Referenzen zu diesem Thema nennen?
Ich kann mir zwei allgemeine Schemata vorstellen, die nützlich wären:
Einige Einschränkungen
Noch besser wäre ein Alleskönner-Chip mit Wheatstone-Brücke/Spannungsteiler, Tiefpassfilter und Verstärker.
Mehr über mein spezielles Setup
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. Das 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 über R1 verstärkt.
Mit R1 = 100 Ohm und V1 = 0..5V funktioniert die Schaltung für R2 = 50..5000 zB ü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 einen maximalen Dynamikbereich angemessen) und verwenden eine sukzessive Annäherung an V1, um so nah wie möglich an die Referenzspannung heranzukommen. Aus V1 und bekanntem Spannungsabfall über R1 (zB Referenzspannung) können Sie nun den Wert von R2, Ihrem Sensor, berechnen. Dadurch erhalten Sie natürlich nur ein Ergebnis innerhalb der Auflösung von PWM, aber Sie können den Fehler (Differenz zwischen Ausgangs- und Referenzspannung) mit einem zweiten Instrumentenverstärker verstärken, um ihn in den Bereich des ADC Ihres Mikrocontrollers zu bringen, und dies bringt Ihnen zusätzliche Bits der Auflösung.
Sie benötigen zwei Operationsverstärker (U1 und Komparator) und zwei Instrumentationsverstä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.
Außerdem sollte ich erwähnen, dass die Idee von jpc 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 habe mich von „adaptivem Verstärker“ im Titel hinreißen lassen, als Entschuldigung für analoges Design. Vergessen Sie alles, was oben geschrieben wurde, es sei denn, Sie möchten etwas (wenig) über Operationsverstärker lernen. Hier ist, hoffe ich, 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.
Dann tasten Sie die Spannung am Sensor mit Ihrem ADC ab. Auf diese Weise benötigen Sie nur einen Single-Ended-Kanal pro Sensor. Ich habe ADC-Empfehlung in dem anderen Beitrag gemacht.
Wenn Sie einen 10-Bit-ADC verwenden, der in den von Ihnen erwähnten Mikrocontrollern integriert ist, erhalten Sie jedoch keinen großen Dynamikbereich. Die Reichweite mit analogen Schaltungen zu erweitern, wie die, die ich ursprünglich gepostet habe, würde zu viele zusätzliche Teile hinzufügen, weshalb ich empfehlen würde, einfach einen 24-Bit-ADC zu verwenden, wie den ADS1256, den ich in dem anderen Beitrag empfohlen habe, weil es Ihnen geben wird geringes Rauschen und hoher Dynamikbereich in einem einzigen Chip (plus die winzige Referenz und der Spannungsregler, der ebenfalls winzig sein kann - Sie können auch versuchen, den Regler wegzulassen und den Widerstandsteiler direkt von der Referenz zu speisen - dies wird Ihnen 1 Bit Auflösung rauben, aber es gibt sowieso viele davon). Sie müssen einige Zahlen knacken ("Automatische Kalibrierung durch Finden 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 durchgesehen und festgestellt, dass einige von ihnen einen 16-Bit-Sigma-Delta-ADC mit interner Referenz haben. Nämlich MSP430F2003 und MSP430F20013 . Das wäre Ihre Ein-Chip-Lösung, wenn Sie bereit sind, auf Atmels zu verzichten. Auch sehr geringe Leistung. 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 über 20-Bit-Sigma-Delta-ADCs verfügen ( PSoC-3- und PSoC-5 - Serie), ebenfalls mit Referenz. Diese wären noch besser.
Wenn die Änderungen des Sensorwiderstands groß sind (> 50%), können Sie anstelle der (komplizierteren) Wheatstone-Brücke eine Spannungsteilerschaltung verwenden. Sie können den Dynamikbereich dann leicht verbessern, indem Sie die Versorgungsspannung variieren.
Eine einstellbare Versorgungsspannung kann einfach aus der PWM in Ihrem Mikrocontroller zusammen mit einem RC-Filter und einer spannungsgesteuerten Stromquelle hergestellt werden.
Hier ist ein grobes Schema meiner Idee:
(aus Socratic Electronics von Tony R. Kuphaldt )
Sie verbinden dann die gefilterte PWM-Spannung mit dem nicht invertierenden (+) Eingang des Operationsverstärkers.
Für schnelles Multiplexing könnten Sie zwei solche Stromquellen erstellen. Wenn Sie alle geraden Sensoren mit einem und alle ungeraden mit dem anderen verbinden, können Sie die Spannung am nächsten Sensor ändern, während Ihr ADC noch abtastet.
Sie sollten eine Präzisionsspannungsreferenz für den ADC verwenden. Sie können auch 1 oder 2 Bit gewinnen, indem Sie einen gleitenden Durchschnittsfilter in Ihrer Software verwenden.
PS. Ich möchte Jaroslav Cmunt für seine enormen Verbesserungen an dieser Antwort danken.
Haben Sie diese Seite gelesen?
Es gibt viele Beispiele für tragbare Elektronik, darunter einige mit Eeonyx-Stoffen. Die Website enthält Beispiele für Sensorschaltungen (ardunio und xbee).
Sie brauchen nicht viele Komponenten, um eine Wheatstone-Brücke zu bauen, und mit 1 Sensorschaltung, die mit den 8 Sensoren gemultiplext ist, sind Sie wahrscheinlich am besten dran. Sie können immer noch 100 Abtastungen pro Sekunde oder mehr ganz einfach an jedem Eingang erhalten. Verwenden Sie eine Stoffplatine (überprüfen Sie erneut die Website oben), um die Brücke zu erstellen. Oder führen Sie einfach Sensordrähte zum Handschuh und verstauen Sie die gesamte Sensorelektronik in einem am Gürtel befestigten Paket. Die meisten Stoffsensoren, die ich gesehen habe, haben einen relativ hohen Widerstand, die 0,1 Ohm, die Sie vom Kabel zwischen der Gürteleinheit und den Handschuhen erhalten können, spielen keine Rolle.
Bringen Sie einen Temperatursensor in jedem Handschuh an und verwenden Sie das Ergebnis, um bei Bedarf eine Korrektur in der Software vorzunehmen, um sich an Umgebungsänderungen anzupassen. Möglicherweise die Handschuhe vor jedem Gebrauch kalibrieren, je nach Intelligenz des Dolmetschers möglicherweise nicht erforderlich.
Ich nehme an, das Xbee-Modul überträgt an einen Computer, baut die Kalibrierungsfunktion in den Computer ein und führt tatsächlich so viel Verarbeitung wie möglich auf dem Computer aus, z. B. Temperaturkorrektur.
Bonuspunkte, wenn Sie nur ein neuronales Netzwerk verwenden, um die Sensoreingabe in eine Aktion umzuwandeln. Dies erleichtert das Training und passt sich den Handbewegungen verschiedener Personen an.
tyblu
jpc
anthony137
Terrasse
Terrasse
tyblu
Terrasse
jpc