Forum: Mikrocontroller und Digitale Elektronik Poti-Teilbereich per ADC genau auswerten


von Ein Mensch (Gast)


Lesenswert?

Hallo zusammen,

ich wuerde gerne ein lineares Poti nur in einem Teilbereich genau 
auswerten. Aktuell haengt es zwischen Vcc und Gnd, mit dem Abgriff an 
einem 10-Bit-ADC. Die Samplewerte sind etwa im Raum von 800 bis 1000 
(das Poti bestimmt einen Drehwinkel, der mechanisch begrenzt auch immer 
in diesem Bereich bleibt, d.h. das Poti wird nie voll bewegt). Hinterher 
benoetige ich auch ein 10-Bit-Signal, welches aktuell interpoliert wird 
und daher in Stufen von 1024/(1000-800) ~= 5 Countern "ruckelt".

Die offensichtlich einfachste Loesung a) waere, das Poti durch 
geaenderte mechanische Uebersetzung voll auszulenken, was allerdings 
raeumlich nicht passt. Die naechste Idee b) waere, dass man einen 
genaueren ADC nimmt, z.B. 16-bittig, und weiterhin in Software 
interpoliert. Variante c) wuerde dagegen den Analogpegel vom Abgriff per 
OpAmp (?) verstaerken, sodass der ADC grundsaetzlich seine 
0->Vcc-Spannung sieht. Eventuell kann man auch als d) das Poti per 
Trimmer passend "schieben", aber dann geht wohl die Linearitaet verloren 
(?).

Das Sahnehaeubchen waere, wenn die Loesung direkt I2C oder ein 
aehnliches Protokoll sprechen wuerde, da zwischen Poti und ADC etwa 2m 
(Cat5e-)Kabel liegen; es erscheint mir ungeschickt, analoge Pegel weit 
durch die Landschaft zu schieben. Selbstredend muss 
Potidrehung->Samplewert einen linearen Bezug haben.

Was nehme ich da am besten fuer Komponenten?

Danke fuer Eure Aufmerksamkeit.

von Ein weitere Mensch (Gast)


Lesenswert?

Na klar - kein Poti!
Sondern ein Gray-Code Decoder, i.a. auch Schrittmotor.

von Frank K. (fchk)


Lesenswert?

Idealerweise:

https://ams.com/as5047u#tab/description

plus ein Dauermagnet statt Poti.

Das ganze ist dann verschleißfrei, weil der Chip das Feld des 
Dauermagneten misst, und SPI liefert Dir eine 14 Bit Absolutposition des 
Drehwinkels.

fchk

von Harald W. (wilhelms)


Lesenswert?

Ein Mensch schrieb:

> ich wuerde gerne ein lineares Poti nur in einem Teilbereich genau
> auswerten. Aktuell haengt es zwischen Vcc und Gnd, mit dem Abgriff an
> einem 10-Bit-ADC. Die Samplewerte sind etwa im Raum von 800 bis 1000

Ich glaube, Du überschätzt die Genaigkeit eines Potis. Wenn Du einfach
nur den Bereich 800...1000 auswertest, ist das völlig ausreichend.

von foobar (Gast)


Lesenswert?

Falls dein ADC andere Referenzspannungen unterstützt, kannst du das Poti 
umpolen, so dass die benötigten Werte zwischen 20 und 200 liegen und 
dann die Referenzspannung auf einen niedrigeren Wert setzten (z.B. statt 
5V auf 1V).

von Ein Mensch (Gast)


Lesenswert?

Danke fuer die Anregungen!

An Encoderscheibe oder Hallsensor hab' ich jetzt nicht gedacht. Ich 
denke durchaus, dass es die technisch angepassteren Loesungen sind, u.a. 
weil ich in einer Achse eine mechanische Linearbewegung erst per 
Zahnstange auf das Poti umsetze; da waere ein Codestreifen plus 
Lichtschranken viel direkter (oder kapazitive Kodierung a la 
Schieblehre).

Wie wuerde man aber mit der Poti-Variante weiter verfahren? Ich messe 
mit dem Oszi durchaus stimmige Aenderungen im 0.01V-Bereich, die wegen 
der ADC-Aufloesung aber verloren gehen. Ich find' das sehr 
unbefriedigend, dass die aktuell sichtbare Ungenauigkeit erst im 
Digitalteil entsteht.

von Frank K. (fchk)


Lesenswert?

Ein Mensch schrieb:

> An Encoderscheibe oder Hallsensor hab' ich jetzt nicht gedacht. Ich
> denke durchaus, dass es die technisch angepassteren Loesungen sind, u.a.
> weil ich in einer Achse eine mechanische Linearbewegung erst per
> Zahnstange auf das Poti umsetze; da waere ein Codestreifen plus
> Lichtschranken viel direkter (oder kapazitive Kodierung a la
> Schieblehre).

Die Linearbewegung kannst Du direkt messen, ohne weitere Mechanik. Da 
plumpst dann ohne extera ADC usw direkt ein digitaler Wert raus.

https://ams.com/linear-position

> Wie wuerde man aber mit der Poti-Variante weiter verfahren? Ich messe
> mit dem Oszi durchaus stimmige Aenderungen im 0.01V-Bereich, die wegen
> der ADC-Aufloesung aber verloren gehen. Ich find' das sehr
> unbefriedigend, dass die aktuell sichtbare Ungenauigkeit erst im
> Digitalteil entsteht.

Potis verschleißen und verschmutzen mit der Zeit. Die Genauigkeit, die 
Du jetzt siehst, wird nur eine begrenzte Zeit überleben. Ist halt 
Mechanik.

Ansonsten: analog-Addierer/Subtrahierer und Multiplizierer. 
Standard-OP-Schaltungen aus dem Lehrbuch. Nachteil: Du wirst Dir wohl 
oder übel  negative Hilfsspannungen erzeugen müssen.

https://www.mikrocontroller.net/articles/Operationsverst%C3%A4rker-Grundschaltungen

fchk

von Ein Mensch (Gast)


Lesenswert?

foobar schrieb:
> Falls dein ADC andere Referenzspannungen unterstützt [...]

Ebenfalls gute Anregung! Das Problem ist nur, dass es mehrere Potis sind 
(was ich klammheimlich verschwieg), die via Multiplexer an einem ADC 
haengen. Die Potis sind natuerlich nicht synchronisiert und braeuchten 
dann unterschiedliche Vref... aber ich hab' beim Nachschlagen im 
Datenblatt dazu eine nette Ueberraschung erlebt: es ist tatsaechlich ein 
16-bit-ADC (13 bit usable), wo aber aus 
Rueckwaertskompatibilitaetsgruenden per Default nur 10 Bit rausfallen. 
Wenn man das umstellt, wird er genauer.

Dank auch an fchk, die Verschleissproblematik hatte ich nicht wirklich 
auf dem Schirm. Und die kontaktlosen Encoder sehen deutlich passender 
aus als mein aktueller Setup. Mit den OpAmp-Schaltungen hatte ich mal im 
falstad.com-Simulator herumprobiert und konnte sie prinzipiell 
nachvollziehen, zumindest um die untere Peakspannung aus dem Poti auf 
Vref zu verstaerken.

von Wolfgang (Gast)


Lesenswert?

Warum nimmst du nicht einen 24Bit ADC, z.B. einen HX711, wie er für DMS 
gerne verwendet wird.
https://www.ebay.de/itm/201502614307

von M. K. (sylaina)


Lesenswert?

Ein Mensch schrieb:
> Wie wuerde man aber mit der Poti-Variante weiter verfahren? Ich messe
> mit dem Oszi durchaus stimmige Aenderungen im 0.01V-Bereich, die wegen
> der ADC-Aufloesung aber verloren gehen.

Öhm, dann musst du an deinen ADC aber noch mal ran. 10 Bit ADC bei 5 VDC 
hat eine Auflösung von ca. 5 mV, damit sind Änderungen bei 10 mV 
problemlos feststellbar. Und wenn du geschickt verschaltest kannst du 
sicher auch noch weiter mit der Referenzspannung runter, z.B. auf 1.1 V 
(denke da grade an einen Atmega328p der ja sowas integriert hat). Da 
kannst du dann auf knapp 1 mV auflösen.

Für einen besseren Tipp müsste man aber genauer wissen, was gemessen 
werden soll. Etwas mehr Infos zum Aufbau wären echt nützlich. Spontan 
fällt mir bei der bisherigen Beschreibung eigentlich auch so 
Linear-Geber wie sie z.B. Heidenhain anbietet ein.

von Olaf (Gast)


Lesenswert?

> Wie wuerde man aber mit der Poti-Variante weiter verfahren?

Wenn du das machen willst dann brauchst du dafuer geeignete Potis. 
Positionsabfragen ueber Potis sind/waren in der Industrie nicht 
ungewoehnlich weil sie sofort einen Absolutwert liefern und man keine 
Endschalter braucht. Allerdings sind uebliche Potis nicht fuer haeufige 
Bewegungen geeignet. Es gibt dafuer extra Typen mit anders beschichteter 
Widerstandsbahn. Die Unterschiede in der Lebensdauer sind IMHO so 1:10 
und die im Preis auch. .-)

Olaf

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Ok, wenns aus Gruenden der Religiositaet oder politischen Ueberzeugung 
unbedingt Potis und ein ADC sein muessen, hier noch ein zweifelhafter 
Vorschlag: Lass einen Pin des µC wackeln, haeng' daran (ggf. nach einem 
geeigneten Treiber) einen Haufen Kondensatoren und Dioden die du als 
Spannungsvervielfacher verschaltest, danach ggf. noch stabilisieren und 
dann die Potis nicht zwischen 0 und 5V haengen, sondern z.b. zwischen 
-5V und +10V. Oder zwischen -15V und 15V, oder sonst irgendwelche 
Spannungen, die zum eingeschraenkten Drehwinkel passen. Musst halt 
gucken, dass das Pingewackel und die Ladestroeme der Kondensatoren nicht 
in den ADC rein"pfeifen".

Gruss
WK

von Yalu X. (yalu) (Moderator)


Angehängte Dateien:

Lesenswert?

Ungeachtet der Nachteile bzgl. des Potiverschleißes und der Störungen
durch die lange Leitung kannst du das Potisignal mit der Schaltung im
Anhang passend verstärken. An REF wird dabei die Referenzspannung des
ADC (bei dir vermutlich VCC) angeschlossen. Ist U_L die minimale und U_H
die maximale Eingangsspannung und R3 vorgegeben, so ist

Sind die Versorgungsspannungen des Opamp gleich Uref und 0V, muss der
Opamp ein ein Rail-to-Rail-Typ sein. Da dessen Ausgangsspannung nicht
ganz an die Versorgungsspannungsgrenzen herankommt, solltest du U_L und
U_H etwas großzügiger auslegen.

Im Beispiel bin ich von

  Uref = 5V,
  U_L  = 3,9V ⪅ Uref ·  800/1024 und
  U_H  = 4,9V ⪆ Uref · 1000/1024

ausgegangen. Die Schaltung kann aber für beliebige 0 ≤ U_L ≤ U_H ≤ Uref
dimensioniert werden.

von Röhry (Gast)


Lesenswert?

Nur einen Teilbereich des Potis zu nutzen ist ein ernster Design Fehler!


Abhilfe:

Ein spielfreies Getriebe nehmen welches dann den kompletten Drehbereich 
ausnutzt!

von M. K. (sylaina)


Lesenswert?

Röhry schrieb:
> Nur einen Teilbereich des Potis zu nutzen ist ein ernster Design Fehler!
>
>
> Abhilfe:
>
> Ein spielfreies Getriebe nehmen welches dann den kompletten Drehbereich
> ausnutzt!

IMO ist es ja generell ein ernster Design-Fehler ein Poti als Sensor zu 
nutzen. Werden sie durch den Menschen benutzt (Bedienelemente) dann geht 
das IMO grade noch aber als Positionsmelder für irgend welche Antriebe? 
Dafür waren Potis nie gedacht und nur die wenigsten sind dafür geeignet. 
Die Sache mit dem Teilbereich kommt da dann noch on top.

von BirnKichler S. (Firma: privat) (max707)


Lesenswert?


von M. K. (sylaina)


Lesenswert?

Esmeralda P. schrieb:
> Gibt es durchaus:
>
> 
https://www.bing.com/images/search?q=wegsensor&id=D38E1F3BE62BA4689BF68BD618113FCE09E16024&FORM=IQFRBA

Natürlich gibts durchaus Potis, die als Wegsensoren verbaut werden. 
Haben wir auch hier in der Firma an Maschinen. Ich seh aber auch wie oft 
selbst langlebige Modelle z.B. von Burr-Brown ausgetauscht werden müssen 
einfach weil die Potis durch sind. Mit nem Encoder hätte man da besser 
getan und meist ist da mehr Platz als nötig wäre, nicht nur für einen 
Encoder.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.