Werte von Volt in Werte eines Winkels umformen

Guten Abend,

ich bin in den letzten Tagen dabei ein Programm zu schreiben welches mir aus einen normal Potentiometer Wert zwischen 0 und 5V also zum Beispiel 3.5 Volt einen Winkel darstellt also bei zum Beispiel 3.5 Volt habe ich 20°, ob das jetzt mit der Wahrheit übereinstimmt, ist mir zurzeit relativ egal da ich das nur mit dem Fahrzeug in der Schule überprüfen kann. Mir geht es aber gerade darum das ich es nicht schaffe das ich im Serial Monitor diese 20° darstellen kann. Ich suche nach einer Formel, welche mir im Bereich von 0-5V einen Winkel von 0 bis maximal 45° ausgeben kann. Stand jetzt habe ich ein Programm, welches mir nur die aktuellen Potentiometer wert erkennt und im Serial Monitor anzeigen lassen kann.

Ich habe diese Hilfe hier gefunden von meinem Lehrer:
Der Arduino verwendet 10bit ADCs. Das bedeutet, U= 0-5V entsprechen den Werten X=0-1023. Mit Y=45/1023*X hast du die Umrechnung in Grad.

Wie kann ich das jetzt aber in meinem Code verwenden

Die Funktion map() ist für solche Konvertierungen nützlich, z.B.

long winkel = map(adc_wert, 0, 1023, 0, 45);

1 Like

grafik

Anstelle der Multiplikation mit 5.0 multiplizierst Du mit 45, dann bekommst Du den Winkel. Schlag nach beim Dreisatz.

2 Likes

Hallo,
mir ist jetzt nicht ganz klar was du meinst. Ein normales Poti hat in der Regel einen gesamten Winkel von etwa 270 Grad , das entspricht dann der Spannung 0-5 Volt.
Ich denke du solltest schon einen Dreisatz als Rechengrundlage nutzen.

0-5Volt sind 0-270 Grad x Volt sind wie viel Grad, das solltest du hinbekommen
Berechne das mit float Variablen sonst gibt's Fehler.

Heinz

1 Like

Ich sach auch: map()

1 Like

warum map, wenn man genau eine Multiplikation mit 45 will?

Noch einen draufgesetzt:
Ich sach mal, er braucht sogar analogRead(A0) * 46U / 1024, wenn er den 46 Werten (0..45) jeweils einen gleich großen Bereich auf dem Poti einräumen will.

1 Like

Danke das einfachste hats auch getan

Merke ich mir

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.