Machen wir's mal ganz einfach:
auf einer Skala von 0..100% soll die Stellung des Schleifkontakts eines
Schiebepotis abgebildet werden. Der Poti wird über eine AD-Wandler
eingelesen.
Dummerweise fängt der Poti aber nicht bei 0 an und hört bei 10 kOhm auf
sondern beginnt bei 130 Ohm ("Offset") und endet bei 9620 Ohm.
Einfache Proportionalisierung minus Offset geht nicht, ich habe schon
mehrere Varianten probiert, da kam stets Nonsens raus. Wie kann ich
diesen unlinearen Zusammenhang ohne Tabelle lösen? Ist da eine
mathematische Folge in der Art 1/x + 1/x^2 + 1/x^3 drin versteckt?
ist es ein linear Poti ?
-> halber Weg, halbe Ohm?
dann Geradengleichung Y = m * X + b
klappt ganz gut bei fast jeder AD - Wandlung, sprich Spannungsmessung
Georg Simon Ohm schrieb:> Einfache Proportionalisierung minus Offset geht nicht, ich habe schon> mehrere Varianten probiert, da kam stets Nonsens raus.
also nicht, dann wirds ein log. Poti sein (pos. oder neg.)
wenn du keine Tabelle willst musst du halt mit dem Log. rechnen
(Math.LIB, + floating Point) auf AVR möglicherweise Speicher fressend,
aber über den Prozzi schweigst du ja.
Evtl. geht Teilstücke zu linearisieren in bekannten Fehlergrenzen
wenn A-B
Geradengleichung Y = m1 * X + b1
wenn C-D
Geradengleichung Y = m2 * X + b2
usw.
Das Poti hat einfach eine elektrische Mittelstellung bei R/2. Du
definierst diese elektrische Mittelstellung einfach auch als mechanische
Mittelstellung und bist fertig.
Klar ist, dass mechanischer Anfang und Ende, das sind die Stellen, an
welchen der Schleifer blockiert, nicht mit elektischem Anfang und Ende
übereinstimmen.
thomas s schrieb:> Du> definierst diese elektrische Mittelstellung einfach auch als mechanische> Mittelstellung und bist fertig.
kann das einer mal übersetzen?
wie soll das gehen ohne Tabelle für andere Werte bei log. Potis?
Das Poti ist linear.
Diese y= mx+b Geschichte habe ich als erstes aufgegriffen und eine
Stunde lang in unterschiedlichen Kombinationen untersucht - es kamen
aber immer starke Verfälschungen an den Skalenenden raus.
Machen wir's mal etwas einfacher:
>Du darfst dann natürlich nur *190 rechnen
Das ist ja das was ich meine. Mit vielen Intervallen geht das. Aber
wollen wir das wirklich? Deswegen meine Eingangsfrage: Kann man das
Problem mit einer geometrischen Folge erschlagen? Im grunde genommen ist
das ein Problem das sehr oft auftritt, beispielsweise bei
berührungsempfindlichen Grafik-Panels - dort muß pixelgenau der
Widerstandswert der resistiven Folie für den Stift (Stylus) zugewiesen
werden. Und jede Folie ist ein bissel anders...
Georg Simon Ohm schrieb:> auf einer Skala von 0..100% soll die Stellung des Schleifkontakts eines> Schiebepotis abgebildet werden. Der Poti wird über eine AD-Wandler> eingelesen.
DAS Potentiometer. DER AD-Wandler.
Und was soll "eingelesen" heißen? Normal würde man die beiden Enden des
Potis an GND und U_ref legen und den Schleifer an den ADC-Eingang. U_ref
kann dabei auch die Betriebsspannung sein (vorausgesetzt der ADC kann
die Betriebsspannung als Referenz verwenden). Eventuell noch ein
RC-Filter zwischen Schleifer und ADC gegen Rauschen/Einstreuungen.
Dann bekommt man für ein ideales Potentiometer und einen idealen ADC den
Wert 0 für das untere Ende des Potis und den Wert ADC_max (also z.B. 255
bei einem 8-Bit ADC) für das "obere" Ende.
> Dummerweise fängt der Poti aber nicht bei 0 an und hört bei 10 kOhm auf> sondern beginnt bei 130 Ohm ("Offset") und endet bei 9620 Ohm.
Ja. Und?
> Einfache Proportionalisierung minus Offset geht nicht, ich habe schon> mehrere Varianten probiert, da kam stets Nonsens raus.
Das liegt dann aber nicht am Verfahren, sondern daran daß du es falsch
verwendest.
Nemen wir einfach an, daß dein ADC den Wert MIN für das "untere" Ende
des Potis liefert und den Wert MAX für das "obere" Ende. Oder anders
ausgedrückt: MIN ~= 0% und MAX ~= 100%. Für alle Zwischenwerte X ergibt
sich dann ein linearer Zusammenhang:
PROZENT = (X-MIN)/(MAX-MIN)*100
Axel Schwenke schrieb:> Das liegt dann aber nicht am Verfahren, sondern daran daß du es falsch> verwendest.
offensichtlich :-)
für die Steigung m gilt dY/dX
also
Messwert 1 Schleifer unten (0% Schiebeweg oder Ohm) = y1 (Spannung) vom
Schleifer nach unten (GND?) messen
Messwert 2 Schleifer oben (100% Schiebeweg oder Ohm) = y2 (Spannung)
Schleifer nach unten (GND?) messen
das bildet dir
x1 als ADC y1 (digital Wert) ab
x2 als ADC y2 (digital Wert) ab
dann hast du m = (y2-y1) / (x2-x1)
nun kannst du x und m einsetzen und b ermitteln, sollte für jeden Fall
gleich eine Konstante sein + Messfehler
bei mir immer genügend genau (gutes Messgerät vorausgesetzt), oft besser
als der ADC für b1 und b2 -> Abweichung b1 zu b2 deutlich unter 1%
8-bit dac rechnerisch 0,4% (1/256)
10-bit dac rechnerisch 0,1% (1/1024)
Jeder 4 Euro Schultaschenrechner kann mittlerweile
lineare Regression.
Einfach bei Nullanschlag und Endanschlag des Potis
die Ist- und die WunschWerte eintippen.
Und den Taschenrechner den Rest machen lassen...
Joachim B. schrieb:> kann das einer mal übersetzen?>> wie soll das gehen ohne Tabelle für andere Werte bei log. Potis?
Kollege, ein linearer Zusammenhang zwischen Weg und Widerstand existiert
nur bei linearen Potis.
Was gibt's da groß zu übersetzten? Ist doch ganz einfach, ich habe das
Verfahren beschrieben, welches für potentiometrische Wegsensoren benutzt
wird. Das trifft das Problemchen ganz gut. Wahrscheinlich bist du
übertrainiert :-)
Eine eigene Frage?
Dieser Thread ist über 11 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.