Forum: Mikrocontroller und Digitale Elektronik AD-Wandler und Winkelberechnung


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Tilo Grune (Gast)


Lesenswert?

Ich möchte einen Poti mit 270 Grad Drehbereich als Winkelgeber nutzen.
Dazu hängt er zwischen 5Volt und Masse. Der Schleifer geht an den Port
eines 10bit AD-Wandlers. Um aus den Rohwert des AD Wandlers einen
Winkelwert zu erhalten, kann ich folgende Berechnung durchführen:

Winkelwert = Rohwert * (270 / 1023).

Was mir nicht klar ist, ist der Teiler 1023. Müßte evtl. durch 1024
geteilt werden, wegen der Auflösung 10 bit.

von Jörg Wunsch (Gast)


Lesenswert?

Im Prinzip ja, aber der Fehler in Deinen 270° dürfte deutlich größer
sein als der im Unterschied zwischen 1023 und 1024. ;-)

Miß den nutzbaren Winkelbereich mal nach.  Meistens haben die Potis
am Ende noch versilberte Flächen, also ein Stück ,,toten Gang''.

Außerdem dürfte der Linearitätsfehler eines gängigen Kohleschicht-
Potis um einiges größer sein als das, was Dein 10-bit-ADC als
Genauigkeit bringt.  Nur mal als Vergleich, sehr gute ausgemessene
Tandem-Potis waren mal mit 3 dB deklariert -- das ist die Abweichung
im Gleichlauf zwischen den beiden Potis.  Anders gesagt, die Spannung
am Spannungsteiler des einen Potis durfte sich von der des anderen um
40 % unterscheiden...

Entweder mißt Du jedes Poti einzeln aus und hinterlegst eine Tabelle
mit der tatsächlichen Übertragungskurve, oder Du gehst auf ein völlig
anderes Prinzip.  Genaue Winkeleingabe wird meist mit
Inkrementalgebern gemacht.  Schraub' mal eine einfache Computermaus
auf, da hast Du zwei davon drin.

Falls die Programmiersprache C ist, dran denken, daß Du das im
Gleitkommabereich rechnen mußt.

von crazy horse (Gast)


Lesenswert?

wie kommst du auf 40%??
Und warum MUSS man das mit float rechnen?? Muss man gar nicht, wenn man
die Klammer wegnimmt, also erstmal mit 270 multipliziert und dann
teilt. Einzige Bedingung: long-Zahlen verwenden.

von Sebastian (Gast)


Lesenswert?

Hi,
der AD-Wandler gibt 0-1023 aus. Darum wird auch durch 1023 geteilt.
Das Rechenverfahren was CH da vorschlägt verschluckt leider ein
bisschen was.
3*270/1023=0 mit long
Rauskommen sollten 0,79. Falls man die Genauigkeit nicht braucht kann
man dies aber vernachläßigen.

von dominik (Gast)


Lesenswert?

Hi!

Ich mache gerade ein Praktikum bei PIHER, falls jemand die Firma kennt.
Stellt Potentiometer her. Die Linearität liegt im Normalfall bei 10%
oder 20%, je nach Modell. Gibt natürlich auch Sonderanfertigungen.
Da machts aber wohl immernoch nicht viel aus ob man mit 1023 oder 1024
rechnet.

Ciao
  Dominik

von Sebastian Wille (Gast)


Lesenswert?

@Sebastian:

> der AD-Wandler gibt 0-1023 aus. Darum wird auch durch 1023 geteilt.

Darum? Ich habe doch 1024 verschiedene Schritte, also wohl schon durch
1024.

Sebastian

von Fragezeichen (Gast)


Lesenswert?

@ Sebastian_Wille

Hallo Mathematiker, Wenn du einen Wert von 0 - 1023 bekommst, der 0 -
270 Grad entsprechen soll, dann sag mir mal bitte, wie du bei einer
Teilung durch => 1024 <= auf 100% oder halt 270 Grad kommst ?????

von Sven (Gast)


Lesenswert?

@ Sebastian!

Nein! Dein größter Wert ist 1023. Also

Rohwert = 1023 => 1023*270/1023 = 270
Rohwert = 0 => 0*270/1023 = 0

Allerdings ist Teilen durch 1024 deutlich einfacher: 2mal ShiftRight =
/4 und letztes Byte weglassen = /256 ergibt /1024. Der entstehende
Fehler dürfte akzeptabel sein. Zwei Befehle statt einer
24bit-Divisionsroutine sind überzeugend, oder?

Sven

von Jörg Wunsch (Gast)


Lesenswert?

@das verrückte Pferd (wußte noch gar nicht, daß Pferde auch Lötkolben
halten können ;-):

> wie kommst du auf 40%?

3 dB = 1,4<irgendwas>, anders gesagt, ein Kanal hat 40 % mehr Pegel
als der andere.

Ich weiß allerdings gerade nicht, auf welchen Winkelbereich sich die 3
dB Angabe bei Tandempotis bezog.  Sicher wird das nicht bis zum
minimalen Anschlag gemessen worden sein, der größte Gleichlauffehler
dürfte aber typischerweise am unteren Anschlag auftreten.

von Jens Renner (Gast)


Lesenswert?

Hallo Jörg,

das mit den 3 dB stimmt nicht ganz.
Als E-Techniker hat man die Faustregel, dass +3 dB einer Verdopplung
des Signals entspricht. Kann man mit 10log2 = 3.01 auch nachrechnen.

Aber das nur am Rande :-)

von Jörg Wunsch (Gast)


Lesenswert?

Du verwechselst Spannung mit Leistung. ;-)

von Jens Renner (Gast)


Lesenswert?

Stimmt, Asche auf mein Haupt :-)
Da haben wir ja 20log1.4 = 3
Danke für die Korrektur.

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]
  • [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.