Ich habe eine Frage zur Skalierung des analogen Sensorausgangssignals.
Ziel ist es, einen Abstandssensor GP2Y0A02YK0F von Sharp an einen Raspberry Pi 3 B anzuschließen. Der Sensor kann an der 5V-Schiene des Raspi betrieben werden. Die Differenz der Ausgangsspannung wird angegeben als:
Und dieses Beispiel für eine Entfernungsmessung ist gegeben:
Dementsprechend erwarte ich, dass meine Ausgabe vom Sensor Gleichspannungen zwischen ~ 0,4 V und ~ 2,75 V beträgt. Jeder Wert wird mindestens für die Dauer einer Messung und maximal so lange gehalten, wie sich der gemessene Abstand nicht ändert.
Als ADC plane ich einen MCP3204 (12-Bit, 4 Ch., SPI), mit der 3,3V-Schiene des Raspi als Vref und als einseitige Stromversorgung.
Um die volle Dynamik des ADC zu nutzen, möchte ich den Ausgang des Sensors skalieren und den Offset entfernen, bevor er in den ADC eingespeist wird.
Für die Skalierung selbst sollte meiner Meinung nach eine nicht invertierende Operationsverstärkerschaltung ausreichen. Bei etwas Headroom würde ich Va=3.2/2.75=1.16 wählen.
Was ich nicht angehen kann, ist der 0,4-V-Offset. Wenn mein Signal Wechselstrom wäre, würde ich vor dem Operationsverstärker einen einfachen Hochpass wählen, aber da das Signal möglicherweise für längere Zeit Gleichstrom ist, bin ich mir nicht sicher, was ich tun soll.
Ihre Signalreichweite beträgt prozentual zur Reichweite des ADC 71,2 %. In äquivalenten LSBs sind das 2917 LSBs. Das entspricht einem hypothetischen ADC mit einer Auflösung von 11,5 Bit.
Meine erste Beobachtung ist also, warum sich die Mühe machen: -
Angesichts der Tatsache, dass jeder ADC einen realen Bereich hat, von dem man sich nie darauf verlassen kann, dass er genau 0 Volt zu Vref beträgt, sehe ich keinen großen Vorteil in dem, was Sie vorschlagen.
Aber sagen wir, Sie haben einen Operationsverstärker verwendet, der Ihr Signal auf den gewünschten Bereich modifiziert hat, welche Fehler treten dabei auf? Werden Sie 0,1% Widerstände (10-Bit-Genauigkeit) oder vielleicht 0,01% Widerstände (etwas mehr als 13-Bit-Genauigkeit) verwenden? Sind Sie bereit, für diese Genauigkeit zu bezahlen?
Jeder Widerstand wird einen Fehler verursachen und es kann angenommen werden, dass sich diese Fehler akkumulieren. Außerdem gibt es den Fehler des Operationsverstärkers und seine Unfähigkeit, innerhalb von 10 mV bis 50 mV des Versorgungsbereichs zu gelangen, bedeutet, dass Sie niemals die gewünschten vollen 12 Bit erhalten können.
Bleiben Sie also bei einem 11,5-Bit-System oder entwerfen Sie einen Operationsverstärker (mit erheblichen Kosten für die Widerstände), der Ihnen 11,8 Bit liefern könnte?
Oder entscheiden Sie sich für einen 14-Bit-ADC und vergessen dieses dumme Gerede von einem Level- und Gain-Shifter?
Andy hatte eine gute Antwort auf Sie bezüglich des potenziellen Genauigkeitsverlusts durch das Hinzufügen einer Skalierungs- und Offset-Schaltung. Aber es gibt auch einige andere Faktoren, die Sie berücksichtigen müssen:
Es gibt wahrscheinlich viel bessere Strategien, um einen solchen Sensor in einem relativen Messmodus zu verwenden, in dem Sie dynamische Änderungen erkennen und sich nicht wirklich um die absolute Genauigkeit kümmern müssen. Treffen Sie Entscheidungen darüber, wie sich die Sensormesswerte von Probe zu Probe ändern, im Gegensatz zu den Messwerten in der Vergangenheit, als Sie versucht hatten, einen absoluten Referenzpunktsatz zu kalibrieren. Es gibt auch Techniken, mit denen Sie die A/D-Messwerte auf der Grundlage einiger Startbedingungen oder -positionen zeitlich "kalibrieren" oder "nullen" können. Beides erfordert wirklich, dass Sie sicherstellen, dass der Spielraum des A/D-Wandlers sowohl über als auch unter dem normalen erwarteten Eingangsspannungsbereich liegt. Zwanzig oder dreißig Prozent Marge wären nicht weit von der Basis entfernt.
Namron
Dorian
Heinrich Krun
Wesley Lee