-
-
Hallo,
Servoansteuerung funktionniert so: alle 20 ms benötigt das Servo einen Impuls, die Länge dieses Impulses muss zwischen 1.25 und 1.75 ms liegen. Die Anzahl von 50 Impulsen pro Sekunde (1 Sekunde = 1000 ms, 1000 / 20 ms = 50 Impulse) ist als konstant anzusehen, es ist die Länge dieser Impulse, die die Position angibt.
Das Servo wird nun die gewünschte Position so schnell es kann ansteuern: wenn man also die Lange von 1.25 auf 1.75 änders, wird der Servomotor so schnell wie moglich drehen, um die gewünschte Position (von einem extrem zum anderen) zu erreichen. Im allgemeinen macht das ja auch Sinn, Servos werden ja hauptsächlich im Modellbau angewendet, und man will zum Beispiel, dass sich ein Ruder im Idealfall 'sofort' in der richtigen Stellung befindet.
Will ich nun eine Zwischenposition ansteuern, muss ich die Länge (!) des Impulses andern (Beispiel: Mittelstellung: impulsdauer 1.5 ms), diesen Impuls aber noch immer alle 20 ms wiederholen.
Will man die Stellung langsam verändern (also die Drehgeschwindigkeit beeinflussen), muss man die Position schrittweise veränders. Also, von einem Extrem zum andern, in 1 Sekunde, alte Stellung 1.25 ms = 0°: 25 Impulse zu 1.5 ms, dann 25 Impulse zu 1.75: das Servo fährt zuerst zur 90°-Stellung, dann eine halbe Sekunde später zur 180°-Endstellung.
Dies ist näturlich noch immer sehr grob, eine weitere Verfeinerung (innerhalb einer Schleife) führt dann zum gewünschten Erfolg: man beginnt mit einem kurzen (langen) Impuls, wartet (20 ms - Länge des Impulses), vergrössert (verkleinert) den Impuls ( um den Wert Gesamtänderung geteilt durch Anzahl der 20msSschritte), und wiederholt, bis die Endpositin erreicht ist.
Ich hoffe dies hilft etwas weiter. Das ganze klingt kompliziert, ist es aber auch 
René
.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen