Lesepotentiometer mit externem ADC

Ich bin ein Neuling und mein erster Beitrag. Also entschuldigt bitte meine Unwissenheit im Voraus.

Mein Projekt besteht darin, eine Handanzeige zum Lesen von Potentiometern (10K linearer Präzisionspot) mit einer Genauigkeit von mindestens 10000 Schritten zu erstellen. Das Gerät sollte auch in der Lage sein, den Leitungsdrahtwiderstand des Kabels von der Anzeige zum Potentiometer aufzunehmen. Letztendlich sollte die Anzeige in der Lage sein, bis zu 10 ähnliche Potentiometer-Wischerwerte zu lesen, wenn diese Töpfe mit denselben Erregerdrähten miteinander verbunden sind. Vielleicht werde ich einen analogen Schalter mit Ron <1 Ohm als MUX verwenden, um verschiedene Werte auszulesen. das ist etwas, nachdem ich mein anfängliches Problem gelöst habe, 1 einzelnes 10-kOhm-Pot mit der gewünschten Präzision und einem geeigneten Schutz vor Kurzschlüssen zu lesen

Das Gerät soll den aktuellen Topfwischerwert in einem LCD-Display anzeigen. Das Gerät wird batteriebetrieben sein und als tragbares Handlesegerät verwendet werden.

Ich habe es geschafft, einen groben Prototyp mit Arduino Nano, ADS1115 ADC und externem LCD zu erstellen. Mit ADS115 konnte ich einen relativ stabilen Messwert von einem einzelnen Potentiometer erhalten (ohne Leitungsdrahtkompensation). Ich habe einige laufende Durchschnitte verwendet, um Schwankungen auszugleichen. Der ADS1115 wurde so eingerichtet, dass er 8SPS liest, da die Abtastgeschwindigkeit für meinen Fall nicht superschnell sein muss. Ich habe auch gelesen, dass eine niedrigere Abtastrate Fehler und Rauschen entfernt / reduziert. Ich habe 5 V von Nano bereitgestellt, um den Pot zu erregen, und den PGA auf die Standardeinstellung von 6,144 Volt eingestellt, um die Wischerspannung zwischen 0 und 5 V zu messen. Ich habe die Wischerposition berechnet, indem ich eine Differenzspannungsmessung zwischen Erregung und GND geteilt durch Wischer und GND vorgenommen habe. Bedeutet dies, dass ich im Grunde eine Single-Ended-Messung durchgeführt habe? Vielleicht hätte man eine Diff-Messung zwischen Erregungs-GND und Erregungs-Wischer machen und das Verhältnis nehmen sollen ???

Ich verstehe, dass es in meinem Fall besser ist, einen ADC mit externer Referenz zu verwenden, um den Schwankungsfehler der Erregerspannung zu beseitigen, da ADS1115 keine externe Referenz hat. Daher habe ich mich entschieden, ADS1119 zu verwenden (erhält eine Auflösung von 15 Bit und lässt das Rauschen in meiner Versorgung weg). Es hat 2 x Differenzkanal, externe Referenzspannung und i2c zur Schnittstelle mit atmega328p. Ich habe mich auch entschieden, MCP1700 3,3 V LDO zu verwenden, um die Schaltung mit Strom zu versorgen (niedriger Quotientenstrom für meist batteriebetriebenes Auslesen, stabil (ish) bei etwa 2% und sehr niedrige Dropout-Spannung). Letztendlich verwendet der ATMEGA328p einen 8-MHz-Kristall und eine 3,3-V-Versorgung und sollte nicht mehr Strom benötigen, als er von MCP1700 geliefert wird. Ich plane, mit diesen Teilen meine eigene Platine zu erstellen. Die Platine enthält auch eine Tastatur (1x4 Folientastatur zum Umschalten durch das Menü und einen MUX zum Lesen zwischen 1-10 Töpfen). Es wird höchstwahrscheinlich um ATMEGA328p oder ATMEGA2560 herum entwickelt (habe diesen Teil noch nicht fertiggestellt, hängt von den erforderlichen GPIO- und Energiesparfunktionen ab - offen für Vorschläge).

Nun sind meine wichtigsten Fragen:

1- Ist dieser ADS1119 in meinem Fall der beste Weg, um ein Potentiometer zu lesen? Oder wie liest man ein Potentiometer richtig?

2-Benötige ich einen separaten LDO für die Erregung? vielleicht Präzisionsspannungsreferenzquelle? kann die Präzisionsreferenz sogar verwendet werden, um das (die) Potentiometer zu erregen? ODER Spannungsreferenz spielt keine Rolle, solange ich dieselbe Quelle wie externe Vref für ADC und Erregung für Potentiometer verwende? Was ist in meinem Fall eine geeignete Erregerspannung? reichen 3,3V oder ist größer besser, 5V??

3- Wie kompensiere ich den Leitungswiderstand meiner Kabel, die meinen ADC mit meinem Potentiometer verbinden?

Geben Sie hier die Bildbeschreibung ein(in diesem Schema entschuldigen Sie bitte, dass mir Entkopplungskappen im ADC fehlen)

4-Falls ein Fehler im Kabel zwischen meiner Anzeige und dem Potentiometer vorliegt, wie verhindere ich, dass ein Kurzschluss zwischen der Erregerspannung und Masse mein Gerät beschädigt und einen Fehler/Fehler auf dem LCD anzeigt? Dies wirkt sich auf die Batterielebensdauer aus und beschädigt möglicherweise meinen LDO, ADC?? Wie erkenne ich einen Kurzschluss im Kabel?? Wie erstelle ich eine Schutzschaltung, um dies zu verhindern und meine ADC-Messungen nicht zu beeinträchtigen? Dieser Teil Ich habe nicht einmal eine Idee, wie ich es lösen soll. :(Geben Sie hier die Bildbeschreibung ein

5- Um Strom zu sparen, ist es besser, ein Relais zu verwenden, um das Potentiometer nur dann mit Erregerspannung zu versorgen, wenn es gemessen wird? Oder da dies eine Anzeige ist, die nur verwendet wird, wenn Sie den Topf messen möchten, muss ich mich um diesen Teil vielleicht nicht kümmern. Zweitens macht diese relaisgesteuerte Erregung vielleicht nur Sinn, wenn sie als Datenlogger fungiert, der ständig mit dem Sensor verbunden ist.

6- Letztendlich sollte die Anzeige in der Lage sein, bis zu 10 Wiper-Werte aus 10x 10K-Töpfen zu lesen. Vorzugsweise nicht unter Verwendung eines Drehschalters, sondern eines Multiplexers, der dazu verwendet werden kann, den Wischer durch Drücken einer Tastaturtaste auszuwählen.Geben Sie hier die Bildbeschreibung ein

In diesem Fall, wenn es 10x Töpfe gibt, wird der effektive Widerstand 1K von 10K. Das Gerät sollte also optimiert werden, um einen Widerstand zwischen 10K (Einzeltopf) und bis zu 1K (10x Töpfe) oder irgendwo dazwischen zu erregen, ohne dass sich die Batterielebensdauer oder -leistung wesentlich ändert. Dies ist der letzte Schritt.

Bitte lassen Sie mich wissen, wenn ich weitere Informationen vermisse.

Betrachten Sie einen alternativen, gespiegelten Ansatz, ein Drehgeber und ein digitales 12-Bit-Potentiometer können ohne Verzerrungen entfernt werden, es sieht so aus, als würde es das Steuerungsproblem gut lösen und das Referenzproblem insgesamt beseitigen.
Leider kann ich das Design des bereits vorhandenen Sensors nicht ändern. In Zukunft kann vielleicht ein neues Design implementiert werden. Die Ausleseeinheit muss in der Lage sein, bis zu 10 x 10K-Pots zu lesen.

Antworten (2)

Da ist viel drin!

Batterielebensdauer

Zunächst einmal, anstatt sich ein absolutes Ziel zu setzen, um die Akkulaufzeit zu maximieren, setzen Sie sich ein konkretes Ziel für die Akkulaufzeit und dimensionieren Sie das Akku- und Leistungsbudget entsprechend. Sie werden feststellen, dass Sie sich keine Gedanken über eine kontinuierliche 5-mA-Abnahme aus den 10 Töpfen machen müssen.

Ablesen der Potentiometer

Es gibt mehr als einen Weg, dies zu tun. Am einfachsten ist es, die Potentiometer über den V_ref des ADC zu verbinden und jeden Schleifer mit einem unsymmetrischen ADC-Kanal zu verbinden. Dieser führt eine ratiometrische Messung der Wischerposition durch. Um den Leitungswiderstand zu bewältigen, verwenden Sie getrennte Drähte für die Erregerspannung und für V_ref:

  • V_exc+, V_exc-
  • V_ref+, V_ref-
  • V_wischer0, V_wischer1, ...

Eine andere Möglichkeit besteht darin, das Potentiometer als variablen Widerstand zu behandeln (unter Verwendung von nur zwei Anschlüssen). Dann würden Sie eine 3-Leiter- oder 4-Leiter-Messung durchführen, um den Leitungswiderstand aufzuheben. Dieses Setup wird häufig mit RTD-Temperatursensoren verwendet, und Sie sollten in der Lage sein, einen Anwendungshinweis von Ihrem ADC-Hersteller zu finden, der genau dieses Problem anspricht.

Angesichts der sehr langen Entfernungen ist jedoch ErikRs Vorschlag einer Stromschleife möglicherweise eine bessere Option als beide, da sie weniger anfällig für Rauschen ist.

Multiplexing

Anstatt einen ADC zu verwenden und die Potentiometer zu multiplexen, kann es einfacher sein, einfach mehrere ADCs zu verwenden, z. 3x 4-Kanal-ADCs.

Lange Leitungen

1000 Meter sind ziemlich viel. Über den Leitungswiderstand hinaus haben Sie möglicherweise Probleme mit der Rauschaufnahme und die Kabel müssen abgeschirmt werden. Welche Art von Kabel planen Sie zu verwenden? Finden Sie ein erschwingliches Kabel mit 14 Adern?

Sie könnten nach alternativen Lösungen suchen:

  • Setzen Sie den ADC und die Batterie zusammen mit den Potentiometern und führen Sie ein digitales Protokoll in einem geeigneten Kabel aus. Sie müssen speziell nach einem Kabel und Protokoll suchen, das über diese Entfernung funktioniert, aber dies vereinfacht das analoge Frontend (keine Probleme mit Rauschen und Leitungswiderstand) und ermöglicht Ihnen die Verwendung eines Kabels mit weniger Drähten.

  • Dasselbe wie oben, aber führen Sie ein drahtloses Protokoll wie Wize (in Europa) oder LoRa aus oder verwenden Sie sogar ein Mikrocontroller-Board mit einer Mobilfunkdatenverbindung (wie FONA von Adafruit). Ich wäre nicht überrascht, wenn dies die einfachste und billigste Lösung wäre, obwohl sie möglicherweise weniger zuverlässig ist.

Akku: etwa 40 Stunden Laufzeit, einige Monate Schlafzeit. 3xaa alkalisch in reihe verwenden?

Lassen Sie mich diese Frage beantworten:

3- Wie kompensiere ich den Leitungswiderstand meiner Kabel, die meinen ADC mit meinem Potentiometer verbinden?

Ihr Diagramm zeigt Entfernungen bis zu 1000 Metern an.

Um ein analoges Signal über eine große Entfernung zu übertragen, wird häufig eine 4-20-mA-Stromschleife verwendet. Anstelle eines Spannungspegels wird das Signal als Strom zwischen 4mA und 20mA übertragen. Dadurch wird der Effekt des Leitungswiderstands eliminiert, da die Spannung in der Schleife durch die Schleifensteuerung erhöht wird, um den gewünschten Strom aufrechtzuerhalten.

Am Ende des Mikrocontrollers lesen Sie den Strom ab, indem Sie ihn durch einen Shunt-Widerstand leiten und die resultierende Spannung mit Ihrem ADC ablesen. Sie können auch Module (sie werden "Stromschleifenempfänger" genannt) erhalten, die einen ADC an Bord enthalten und mit denen Sie digital über SPI oder I2C kommunizieren.

1000m Kabellänge ist theoretisch max. Normalerweise haben diese Systeme irgendwo zwischen wenigen Metern und Hunderten von Metern Kabel, die mit Datenloggern verdrahtet/an ein tragbares Auslesegerät angeschlossen sind. Ich verstehe, dass die Integration der Messschaltung in den Sensor und das Ausspucken der digitalen Daten in beispielsweise RS485, SD-12, 4-20-mA-Schleife / drahtloser Übertragung viele analoge Rauschprobleme beseitigen würde, aber diese Systeme sind ältere Systeme und bereits vorhanden muss gemessen/überwacht werden. Auch das Kabel vom Sensor hat einzelne Drähte von jedem Schleifer und gemeinsame Drähte von beiden Enden der Töpfe.