Ja,selber was zu bauen macht immer spass aber dann kann man auch gleich eine sinvollere Methode wie angesprochene Getriebemotore nebst Gebern oder Stepper nehmen.Die Alternative einen Getriebemotor zu einzusetzten und dann auf der Welle das Poti anzubringen und sich so kwasi seinen Eigenen Servo zu Bauen.
Servos sind zwar bequem aber im Grunde ungeeignet weil man bei Handelsüblichen Modellen nicht in den Regelkreis eingreifen kann.
Eine konkrete aussage kann ich dir da nicht liefern da ich nicht weiß ob das Zitern bei dir qualitative Gründe hat (Mech. Spiel.Billiger Regelkreis/Poti usw.) oder wie vermutet aus einer überlastung resultiert.Könnten den Digiservos (falls ich mir die leisten) kann das Problem mit dem Schiwngen/zittern eliminieren?
Digitale Servos sind aber in der Regel präziser als die Herkömmmlichen und weisen meist eine feinere Auflösung auf.
@Radbruch
Ja,hatte ich auch erst gedacht und einfach mal mein einfaches Testprogramm mit einem alten Conrad S20 (Stammt noch von ca. 1985) probiert.
Der Servo lief ohne Last zitterfrei,mit leichter Last ebenfalls.Code:'Einfacher Servosteuerung über 2 Taster. ' 'Minimum,Maximum und Schrittweite sind Servospezifisch und müssen auf das 'jeweilige Modell angeglichen werden. 'Verzögerung ist Geschmackssache sowie der Startwert 'Das Programm ist absichtlich einfach gehalten um die Funktion zu verdeutlichen. 'also keine ausgefeilte Tastenabfrage oder sonstige Optimierung. ' 'Ratber 2005 '=============================================================================== $regfile = "M8def.dat" $crystal = 8000000 $baud = 19200 Config Servos = 1 , Servo1 = Portb.1 , Reload = 10 Enable Interrupts 'Ist nötig Config Portb.1 = Output 'Servoausgang Config Pind.6 = Input 'Taster 1 Config Pind.7 = Input 'Taster 2 Portd.6 = 1 'Pullup aktiviert Portd.7 = 1 'Pullup aktiviert Dim Ist As Byte Dim Minimum As Byte Dim Maximum As Byte Dim Schrittweite As Byte Dim Pause1 As Byte Dim Pause2 As Byte Dim Z As Word Minimum = 35 'Rechter Anschlag Maximum = 155 'Linker Anschlag Schrittweite = 1 'Schrittweite beim erhöhen Pause1 = 10 'Verzögerungszeit in ms damits steuerbar bleibt Pause2 = 50 Ist = Minimum 'Einfach nur Definierter Startwert Do If Pind.6 = 0 Then Ist = Ist + Schrittweite If Ist > Maximum Then Ist = Maximum Waitms Pause1 End If If Pind.7 = 0 Then Ist = Ist - Schrittweite If Ist < Minimum Then Ist = Minimum Waitms Pause2 End If Servo(1) = Ist Loop End
Nur wenn ich ihn überlaste dann gibts die bekannte Schwingneigung weil der Servo aufgrund der zu bewegenden Masse nicht mehr schnell genug gegenhalten kann.
@Phyton_Rocks
Ja,guter Hinweis.
Wenn der Controller zu langsam läuft stimmts Timing nicht mehr und der Servo läuft nicht richtig.
Allerdings würde er dann meist gar nicht laufen oder schon ohne Last wild tanzen.







Zitieren

Lesezeichen