mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Frage zu Umrechnung Logarithmischer-> Lineare Kurve


Autor: Steffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
irgendwie habe ich gerade eine Denkblockade und brauche mal einen Tipp.
Problem: Habe Poti mit log. Teilung, dieser liefert nun Werte von 0 bis 
1024 an meinem 10bit ADC.
D.h. von einer Winkelskala von 0 (ganz links) bis 10 (ganz rechts) 
erhalte ich Werte (grob geschätzt) wie
1 - 150 - 365 - 625 - 865 - 940 - 980 - 1000 - 1015 - 1020 - 1023

Man sieht schon, die ersten 10% des Potiwegs ergeben einen viel größeren 
Wertebereich als die letzten 50%. Logarithmisch eben ...

Jetzt würde ich gerne aus den gelieferten Werden wieder eine linearen 
Verlauf machen (z.B. von 0 bis 100 - wenn der Poti in der Mitte steht 
erhalte ich 50; ganz links 0 und ganz rechts 100 und bei 75% eben 75 - 
damit mein Mikrocontroller einfach nur von 10%, 50% Stellung etc. 
ausgehen kann.
D.h. irgendwie müssen die Werte
1 - 150 - 365 - 625 - 865 - 940 - 980 - 1000 - 1015 - 1020 - 1023
in
1 - 10 - 20 - 30 - 40 - 50 - 60 - 70 - 80 - 90 - 100 umgerechnet werden 
können. Ist bestimmt Niveau 8. Schuljahr oder so, aber ich bekomme es 
nicht hin.

Daher bitte ich um Hilfe!
Dankeschön!
Steffi

Autor: Jack Braun (jackbraun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Christian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich kenne das so: im kleinen Bereich ist das Poti sehr langsam, dh z.B. 
bei einem 10K-Poti muss man sehr lange drehen, um von 0 auf 5k zu 
kommen. Demnach schließe ich, dass Du die Spannung an einem 
Spannungsteiler misst??

Rechne also R - x, dann log(R - x) und der Wert ist wieder linear. 
Allerdings noch nicht im richtigen Bereich. Der Rest sollte aber nicht 
so schwierig sein. Eben ein bisschen +,-,*,/.

(R ist der Maximale Widerstand, den Du am Controller messen kannst, x 
der aktuell eingelesene Wert)

Andere Idee:
Wenn Dein Controller noch viel Speciher hat, dann schreib ein kleines 
Programm, dass sehr schnell viele Werte digitalisiert und im Speicher 
ablegt, sodass Du am Ende eine Lookup-Table hast.
Neee, vergess das lieber ;-)

Gruß

Christian

Autor: Steffi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE - Das war es Christian,
ich musste den gemessenen ADC Wert erst von 1023 abziehen.
You made my day!
Steffi

Autor: Frank Schlaefendorf (Firma: HSCS) (linuxerr)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielleicht sollte man ja ein lineares poti benutzen, bevor man den armen 
microcontroller mit logarithmen quält.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.