Hi,
ich hab ein kleines Problem was ich lösen könnte, es scheint mir aber nicht der richtige Weg.
Auflösung = 4096
Teiler = 4
Teilmenge = Auflösung / Teiler
ergibt eine Teilmenge von 1024
Diese Teilmenge ergibt immer einen Winkel von 360°
Wenn ein Zähler 1023 wäre, er ist kleiner der Teilmenge so sind die 360° noch nicht erreicht. So der einfache Weg.
Der Zähler kann aber weiter steigen in Richtung 4096.
Wie berechne ich bei einem Zähler von 2000 das er in der zweiten Teilmenge 1025-2048 liegt und er somit 976 beträgt und einem Winkel von 360/1024*976 = 343,125° hat.
Also schöner. Mir fällt nur etwas mit Bedingungen ein. IF....
Gruß Ralf
Zahl aufteilen und Rest ermitteln
Du suchst den Modulo Operator?
Code: Alles auswählen
>>> 300%360
300
>>> 365%360
5
>>> 360/1024*2000%360
343.12Danke der Tipp war wieder Super.
Wuste doc hdas ihr eine Lösung habt
Ausgabe 1
Offset-Teilung : 1024.0 bei 4 Polpaare
+U -V : 120.0 °
mech. Winkel : 90.0 °
elektr. Winkel : 0.0 °
Ausgabe 2
Offset-Teilung : 1365.3333333333333 bei 3 Polpaare
+U -V : 150.0 °
mech. Winkel : 90.0 °
elektr. Winkel : 270.0 °
Wuste doc hdas ihr eine Lösung habt
Code: Alles auswählen
max_inkrement = 4096
polpaar = 4
inkrement_teilung = max_inkrement / polpaar
print("Offset-Teilung : ",inkrement_teilung, "bei" , polpaar, "Polpaare")
position = 1024
offset_winkel = 360/inkrement_teilung*position%360
uv_position = 360/6/2+ (360/polpaar)
print("+U -V : ", uv_position,"°")
mech_winkel = 360/max_inkrement * position
print("mech. Winkel : ", mech_winkel,"°")
print("elektr. Winkel : ", offset_winkel,"°")
Offset-Teilung : 1024.0 bei 4 Polpaare
+U -V : 120.0 °
mech. Winkel : 90.0 °
elektr. Winkel : 0.0 °
Ausgabe 2
Offset-Teilung : 1365.3333333333333 bei 3 Polpaare
+U -V : 150.0 °
mech. Winkel : 90.0 °
elektr. Winkel : 270.0 °
