Wenn Du schon mit einem Oszilloskop dran bist sieh Dir bitte auch die Versorgungsspannung des Servos an. Häufig sind Einbrüche hier die Ursache für ein Schwingen.
Hallo Users,
nachdem ich jetzt einige Tage getestet habe tritt bei meiner Servo-Ansteuerung immer der gleiche Fehler auf. Dabei fängt der servo an zu ruckeln, d.h er fährt aus für mich unerklärlicher Ursache vor und zurück jedoch immer nur um wenige Grad. An der Ansteuerung scheint es nicht zu liegen, das Signal kommt ordungsgemäß an (1-2ms, 10/20ms Pause). Jetzt habe ich das Signal während des Ruckelns über das Oszilloskop beobachtet und festgestellt, dass sich ein kleiner Teil des Signals (noch nichtmal eine ms) über den normalen Pegel anhebt.
Hat irgendjemand schom mal ein ähnliches Problem gehabt bzw. weiß jemand eine Lösung?
Viele Grüße
Johannes
PS: Die Ansteuerung erfolgt über einen AT89C51RD2, bei dem Timer1 für die Bereitstellung des Signals zuständig ist. Stromversorgung ist für beide ein gemeinsames Steckernetzteil. Der Servo ist ein Standard-Servo von Conrad.
Wenn Du schon mit einem Oszilloskop dran bist sieh Dir bitte auch die Versorgungsspannung des Servos an. Häufig sind Einbrüche hier die Ursache für ein Schwingen.
Hallo Manf,
du hattest Recht, die Spannung schwankt knapp um ein halbes Volt, jedoch erst wenn er zu ruckeln beginnt. Ich habe jetzt auch mal den Strom gemessen und ihn an ein eigenes Netzteil angeschlossen. Während des Ruckelns hatte er ca. 0,75A Strom gezogen. Trotz des größeren Netzteils hat die Spannung noch Einbrücher erlitten. Auch das Parallelschalten eines 100µF Elkos brachte keine Besserung.
Viele Grüße
Johannes
Mit einem 100µF Elkos kannst du nur größere und längere Einbrüche kompensieren. Versuche deswegen mal, so dicht wie nur irgend möglich, am besten auf die Platine des Servos, drei Kondensatoren zu löten:
1x 100µF Elko
1x 10µF Tantal
1x 100nF Keramik
Somit kann ich bei meinen Servos, die auch die billig Teile von Conrad sind, die Spannungseinbrüche recht gut kompensieren.
Viele Grüße,
jon
Nice to be back after two years
www.roboterfreak.de
Hallo
Vielleicht sind die höheren Ströme auch die Folge des Ruckelns und nicht die Ursache. Servos reagieren recht zickig auf schwankende Impulslängen, z.B. ein störender Interrupt von einem anderen Timer/Pin/ UART... Ein Hinweis darauf wäre ein rythmisches Wiederholen des Ruckelns. Oder es findet ein Überlauf einer Variablen statt der dann eine falsche Impulslänge erzeugt. Allerdings sollte man beides mit dem Oszi sehen.
Es könnte auch von einer gestörten Positionsrückmeldung des Servospotis verursacht werden. Dann sollte aber ein zweites Servo ruckelfrei laufen.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
@radbruch
Ich gehe auch davon aus, dass die hohen Ströme die Folge des Ruckelns sind, da er im normalen Betrieb nur sehr geringe Ströme zieht. Ein störender Interrupt scheidet aus, da das ganze Programm momentan nur eine Testroutine für den Servo ist und nur einen Interrupt, den Timerinterupt, besitzt. Leider habe ich keinen 2. Servo da um zu testen ob erläuft.
@Jon
Ich habe deinen Vorschlag mal umgesetzt (momentan noch im Drahtverhau und abweichenden Kondensatortypen, jedoch gleiche Nennwerte) und es scheint zu funktionieren. Das Ruckeln trat jetzt nur 1 oder 2 mal ganz kurz auf.
Vielen Dank für die schnellen Antworten
Johannes
Lesezeichen