Winkel über Poti und ADC. ADC stimmt, aber Winkel nicht

OP #3638043
Lesenswert?
• ▲
▼
Hey,

ich lese über einen Poti einen ADC Wert aus (0...1024), was auch ohne 
Probleme klappt. Aber sobald ich folge Formel anwende, erhalte ich nur 
widersprüchliche Ergebnisse:
1
const short POTI_MAX_ANGLE = 270;
2
short CurrentLeverAngle;
3
short angleOffset  = -135;
4
uint16_t adc;
5

6
CurrentLeverAngle = (short)(10 * (POTI_MAX_ANGLE * adc / 1024.0 + angleOffset));
Die gerechneten Winkel sind immer negativ und am einen Anschlag habe 
-121,3° und am Anderen -135°. Dazwischen geht es mal hoch auf ca. -90° 
und dann fällt es wieder.
Muss ich noch was bezüglich Typenkonvertierung beachten? Die Formel 
stimmt, hab ich getestet
Gast #3638219
Lesenswert?
• ▲
▼
Die Float-Berechnung ( /1024.0) kannst Du sparen, indem Du das 10* mit 
in die Klammer nimmst:
CurrentLeverAngle = 10L  POTI_MAX_ANGLE  adc / 1024 + angleOffset;

Das (short) brauchst Du nicht, weil es automatisch gemacht wird 
(CuLeAngle ist short).
Das (int32_t) wird durch das 10L erledigt.
Das /1024 wird durch einfaches Schieben berechnet.

Was passiert mit dem Wert danach?
Dezimalrechnung nutzt nur einen Teil des darstellbaren Wertebereiches.
Deshalb so weit es geht binär / hex weiterrechnen.
Gast #3638277
Lesenswert?
• ▲
▼
eProfi schrieb:
> CurrentLeverAngle = 10L  POTI_MAX_ANGLE  adc / 1024 + angleOffset;

der TO wollte das eigentlich so:
CurrentLeverAngle = 10L * (POTI_MAX_ANGLE * adc / 1024 + angleOffset);

ist aber etwas sinnfrei, das Ergebnis springt dann in 10er Schritten,
Ich würde die 10 in POTI_MAX_ANGLE und angleOffset reinziehen um eine 
genauere Berechnung zu erreichen

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.