Hi,
also solange wir von den grbräuchlichen Modellbauservos reden, wird die Position des Servos über das PWM vorgegeben und nicht abgefragt.
Für den Fall, dass du das Signal nicht kennst:
Periodendauer: 18ms
Mindestlänge von HIGH: 1ms (Anschlag auf einer Seite)
Maximallänge von HIGH: 2ms (Anschlag auf der anderen Seite)
Das heißt du hast nur 1ms, um die Schrittauflösung zu realisieren.
Da gibt es prinzipiell erstmal zwei Möglichkeiten.
1) Die HIGH Signale der einzelnen Servos werden hintereinander geschachtelt. Und zwar so, dass wenn der letzte Servo bedient ist, dass wieder mit dem ersten angefangen wird. Haken an der Sache ist, da ein HIGH bis zu 2ms dauern kann, wird es ab einer Servozahl von 8 langsam kritisch.
Daher Möglichkeit 2:
Ein Programm, das in der Lage ist, mehrere HIGH Signale gleichzeitig zu bedienen. Das kann man so anfangen, das während der min. 16ms langen LOW phase, anhand der Sollposition die Zeitpunkte vorberechnet werden, an denen das HIGHsignal des einzelnen Servos wieder low geht. Diese Zeitpunkte kann man über das zählen von Interrupten und abpassen.
mfg,
The Man
Lesezeichen