Servo not reaching full travel
Hi guys,
I've made a circuit that i use to work with a futaba servo.
The problem is that i cannot get it to reach it's extremes.
The max i can get is a total of 90º from left to right ( and i know these servos move more that this ).
I'm running the code like this...
( sample )
Moving left:
if pos > 25 then
pos = pos - 50
servo =1
pauseus 1000+pos
servo =0
Moving right:
if pos <1300 then
pos = pos + 50
servo =1
pauseus 1000+pos
servo =0
I tryed to change the limits but the servo does not move pass it ( upper limit is 1300 and center is 700 )
Thanks in advance
Digital servo tricks and traps
1. Centre adjustment.
In most better class servos there is a centre adjustment. To access this, take the servo horn off and use a very small flat blade screwdriver to tweak the potentiometer at the bottom of the servo horn screw mount. This allows you to make an electrical zero adjustment instead of the normal linkage length adjustment.
2. Digital servos will self destruct if driven against their internal stops.
Analog servos are fairly benign when driven past their normal stops. They will stall and draw a few hundred milliamps which is tolerable for a few tens of seconds. A digital servo however draws several amps when moving to the command position and if up against the stops the servo motor will get so hot it melts the plastic coil former used in the coreless motor in seconds. Been there, done that - costs hundreds of dollars when the code in a UAV gets it wrong at power up and burns out aileron and flap servos.
3. Left Right rotation limits.
1.5 mSecs seems to be the universal centre position. 1 mSec is guaranteed to work for one direction and 2 mSec for the other direction with all brands and types of servos. Outside the 1 and 2 mSec limits you are on your own - it might work with brand/type A but not necessarily with brand/type B. There is NO agreement on normal rotation angles - even within one manufacturer. Servos can have +/- 45, +/- 60 and +/- 90 degrees as their internal design limits. Attempting to push a servo past that will shag the servo quick smart.
4. PulsOut is a toggle.
If your code uses the pulsout command to drive the servo make certain you preset the state of the servo drive pin before calling the pulsout command. This command is a toggle and merely sets the pin to the opposite state for the command period. You might be expecting the pin to be low and go high for the pulsout period but real world interference can trip you up and give you the opposite effect. Been there - done that.
Use
Low ServoPin
Pulsout ServoPin, 150 'etc
HTH
Brian
1 Attachment(s)
a little New year present ...
Hi,
a little gadget for your servos ...
xxx...84 shows the auto left>right>left>right ...etc. function
xxx...84+ shows no auto function but allows a different neutral setting and memorizing ... and 1500µs recovering.
note ... C4 is a little 1206 size CMS .22µ capacitor placed just between V+ and GND PIC pins, ... on the copper side !!!
a Happy new year to Everyone !!!
Alain