Arduino Forum

Using Arduino => Motors, Mechanics, and Power => Topic started by: Tofer on May 18, 2018, 01:45 am

Title: Servo slows down right before it stops.
Post by: Tofer on May 18, 2018, 01:45 am
Hello.
Well, there is nothing new about it. The closer a servo is to a dictated angle the slower it moves. The slower it moves the less torque it performs. In my case it means it can't ever come to the position I need.
I've told already a have a simple follow focus project. I rotate a pot and my servo KST BLS 915 rotates a focus ring. But the focus ring is very stiff and when the servo slows down it can't come to a position. It just makes noises but when I rotate my pot a tiny bit back it becomes quite. Printing out the servo's position I found that the interval which it can't go through is about 2-5us. Is there a way to make something with a code to work it out?
Title: Re: Servo slows down right before it stops.
Post by: Paul_KD7HB on May 18, 2018, 01:58 am
Hello.
Well, there is nothing new about it. The closer a servo is to a dictated angle the slower it moves. The slower it moves the less torque it performs. In my case it means it can't ever come to the position I need.
I've told already a have a simple follow focus project. I rotate a pot and my servo KST BLS 915 rotates a focus ring. But the focus ring is very stiff and when the servo slows down it can't come to a position. It just makes noises but when I rotate my pot a tiny bit back it becomes quite. Printing out the servo's position I found that the interval which it can't go through is about 2-5us. Is there a way to make something with a code to work it out?
If what you write about the stepper torque reducing is true and I don't doubt it a bit, then you are reducing the current to the motor. The torque is the same for each step if the current the controller is providing is the same. Since you don't care to show the code, I guess you are disabling the controller and enabling the controller as you increase the time between steps.

But who knows?

Paul
Title: Re: Servo slows down right before it stops.
Post by: outsider on May 18, 2018, 05:30 am
Well, since the servo does not feed back a position signal telling the Arduino where it is (open loop control), the Arduino can only tell it where to go and and cares not where it went.  :)
Title: Re: Servo slows down right before it stops.
Post by: Robin2 on May 18, 2018, 09:29 am
I've told already a have a simple follow focus project. I rotate a pot and my servo KST BLS 915 rotates a focus ring. But the focus ring is very stiff and when the servo slows down it can't come to a position.
Sounds like a classic situation in which a much bigger servo is required.

Or lubrication.

...R

Title: Re: Servo slows down right before it stops.
Post by: vinceherman on May 18, 2018, 02:41 pm
I agree.  Bigger servo.

Or, you might move the servo slightly past the target point and then back.
Before you give it a command, determine which direction it is from the current position.
Add (or subtract, depending on direction) the 2-5us.
Give the servo time to get there.
Then issue a new command for the actual position without the adjustment.
Title: Re: Servo slows down right before it stops.
Post by: Johan_Ha on May 19, 2018, 07:48 am
What #4 said. The new command is for making the servo stop buzzing. You could perhaps have a test program measure the current going to the servo. When the turning stops and the servo buzzes, it draws some current. When the new command turns the servo back, the buzz stops and the current goes down. Record how big the turn back has to be in all cases.