Servo Geschwindigkeit steuern

Gast #3386636
Hallo,

Ich habe vor, mir einen Hexapod zu bauen, zur Steuerung dient ein 
Arduino Mega, nur habe ich bei der Steuerung der Servos das Problem, 
dass ich einfach nichts finde, wie ich die Servo Geschwindigkeit 
einstellen könnte.
Weiß jemand wie ich die Geschwindigkeit steuern kann, und trotzdem 
mehrere Servos gleichzeitig bedienen kann?

Mfg. Christoph
Gast #3386640
Falscher Denkansatz.

Ein Servo wird immer die vorgegebene Position mit maximaler 
Geschwindigkeit anfahren und halten. Wenn die resultierende Bewegung 
(scheinbar) langsam gehen soll, muss man diese Bewegung in mehrere 
Phasen unterteilen (quasi Teil-Ziele vorgeben) und diese Vorgaben 
entsprechend langsam wechseln ...
Gast #3386647
Man kann die Geschwindigkeit des Servos beeinflussen, indem man die 
Sollposition nicht sofort, sondern in mehreren Schritten in zeitlichen 
Abständen anfährt.

Also statt z.B. von 0° auf 90° direkt, lieber in 10°-Schritten, die 
zeitlich verzögert werden.

Zeitgleich kannst du das realisieren, indem du dir quasi eine 
Arbeitliste erstellst. WEnn die gewünschte Endposition nicht erreicht 
ist, gib die Istposition plus einem kurzen Stück Richtung Endposition 
als neue Sollposition vor. Wenn das ganze zyklisch aufgerufen wird, kann 
man mehrere Servos "parallel" berechnen und fahren lassen.
Gast #3386650
Nachtrag: Dieses "langsam Wechseln" solltest du nun aber nicht mittels 
Warteschleifen bewirken wollen ...

Vom Prnzip her "schiebt" man die demnächst geplanten Bewegungsziele der 
Servos zusammen mit einer Zeitvorgabe bzw. Gültigkeitsdauer (Sekunden, 
Millisekunden) in eine Warteschlange. In einem zyklischen 
Timer-Interrupt schaut man nun regelmäßig nach, was als Nächstes dran 
ist, löscht erledigte Befehle aus der Warteschlange und führt die 
aktuell anstehenden aus ...
Gast #3386697
Hi

Es gibt auch Servos, wie z.B. den HiTEC-Robotics-Servo HSR-1422CR, bei 
dem das Ansteuersignal nicht die Lage, sondern die Geschwindigkeit 
vorgibt.

MfG Spess
Gast #3387036
Bei den meisten Servos ist die Bewegung bei großer Abweichung soll/ist 
schnell und bei geringer Abweichung langsam. Deswegen folgt er einem 
Steuersignal, dass sich langsam verändert auch langsamer, als wenn man 
das Steuersingal sprunghaft zur Zielwert ändert.

Das kann man schön beobachten, wenn man mal ein Servo öffnet und das 
Potentiometer vom Getriebe trennt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.