Pages: [1]   Go Down
Author Topic: Making a servo idle  (Read 1746 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 9
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

This is a general question about servo's - I hope no one minds me asking it here!

Is there a way to make the servo idle in a particular position?

If I move it to a position and then set the pulse to 0 or off it is slow to respond when I then send it a pwm position.  It's really to stop it drawing current and making a noise while holding it's position.

Do servo's have a specific PWM for idle?  If so I can't find any info on data sheets.

Thanks in advance for any info.
Logged

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 308
Posts: 26471
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You can detach a servo, in which case the library stops pulsing it, but then it will lose any position-holding, so if it is loaded, it will move away from the position you last sent it.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Dubai, UAE
Offline Offline
Edison Member
*
Karma: 22
Posts: 1675
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
   The servo is not really holding its position if you are not pulsing it, it will seem as if it is because of the mechanical resistance of the gear train inside it, but once the load is sufficient to overcome this resistance, it will move and keep on moving.

If your load is light, this should not be a problem

Duane B

rcarduino.blogspot.com
Logged


Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17301
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

This is a general question about servo's - I hope no one minds me asking it here!

Is there a way to make the servo idle in a particular position?

If I move it to a position and then set the pulse to 0 or off it is slow to respond when I then send it a pwm position.  It's really to stop it drawing current and making a noise while holding it's position.

Do servo's have a specific PWM for idle?  If so I can't find any info on data sheets.

Thanks in advance for any info.

If it is a standard R/C type servo, (not one modified for continous rotation), you do not need to do anything to make it hold the last position, the servo library will contiously keep sending that last position value you commanded to the servo. There is no reason to 'detach' the servo, in fact the detach command is more often used in error then for any valid reason.

Lefty
Logged

Seattle, WA USA
Online Online
Brattain Member
*****
Karma: 631
Posts: 50107
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
There is no reason to 'detach' the servo, in fact the detach command is more often used in error then for any valid reason.
But, OP says that they are noisy when holding still (hard to believe) and consume current (easy to believe). So detaching and powering off would address both of those issues.

But, only if the servo is actually powered off, which detaching does not do. The power to the servo would need to go through a transistor that the Arduino turned on and off, in addition to detaching the servo.
Logged

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9671
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The actual amount of current being used by a servo under various conditions should be quite easy to measure using a multimeter.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Left Coast, CA (USA)
Offline Offline
Brattain Member
*****
Karma: 361
Posts: 17301
Measurement changes behavior
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
But, OP says that they are noisy when holding still (hard to believe) and consume current (easy to believe). So detaching and powering off would address both of those issues.

But that most likely is treating the symptom rather then the cause. A R/C servo with proper power (and filtering), proper positioning coding and properly sized to whatever load they are attached to is perfectly capable of not jittering. If you have ever seen the precision that competition R/C acrobatic fliers work at you can see that noisy servos would not be tolerated. There is always the possibility that the OP has very low quality or defective servos, there are some awful cheap models made and sold these days. Wear or missing teeth in the gear train can cause all sort of havoc in this regard. Unbalanced or mechanical overloading is also a possibility. Power is often a root cause.

 I guess I just see detach command as a solution looking for a problem, and most often applied for the wrong reasons.

Lefty
Logged

0
Offline Offline
Tesla Member
***
Karma: 145
Posts: 9671
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Do servo's have a specific PWM for idle?  If so I can't find any info on data sheets.

The OP may not even be using the servo library. With no code, no telling what could be the issue.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

CA
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm doing some research around the same issue more or less.  My understanding is there's a big difference between digital and analog servos in this regard.  When an analog servo stops getting signals it stops trying to do anything.  A digital servo (from what Hitec support told me) will continue to hold its last position, unless failsafe is set to "on" in which case it will hold its failsafe position.  Also from reading, digital servos do continue to draw power even when they're "idling", which I interpret to mean in position with no force acting on it, but it's a low current draw relative to when the motor is doing work.

My question from another concurrent post is, does the "detach" command actually cut power to the servo.  In thinking about it, the servo is in all likelihood drawing power from an external source therefore the answer would be no.  Meaning in the case of a digital servo run from an Arduino, "detach" would not necessarily cause the servo to let loose of its grip.  I'm looking for a definitive answer about this because in my application it seems like the servo does let go, but then sometimes it doesn't.  I don't know definitively what the behavior should be i.e. does the servo know what "detach" means?  Or does the servo just see that it's no longer receiving a signal...
Logged

solar robotic mobilist

UK
Offline Offline
Shannon Member
****
Karma: 223
Posts: 12630
-
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm sure you'll find that detach() just stops the PWM output i.e. it tells the servo library to discontinue generation of the PWM output on that pin. I think you've already explained what the servo would do when that happens. (Your description of the behaviour of analog servos when the signal is lost matches my own experience and I'm sure you're right about the digital servos too.)
Logged

I only provide help via the forum - please do not contact me for private consultancy.

CA
Offline Offline
Newbie
*
Karma: 0
Posts: 39
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks Peter for the confirmation.  Took me long enough to figure it out:)
Logged

solar robotic mobilist

Pages: [1]   Go Up
Jump to: