Full Servo Range
Page 1 of 1

Author:  SuperSammy!!! [ Wed Oct 24, 2012 11:28 pm ]
Post subject:  Full Servo Range

When I program the servos to move from the range of -127--+127 the servos only move about 165-170 degrees, as appose to the 180-degrees they're suppose to, and when you unplug the servos and turn off the lock it shows that the servos are capable of moving the 180-degree, which makes me think it's a programming thing. Is there a way to program the servos to move the full 180-degrees?

Author:  JohnWatson [ Thu Oct 25, 2012 9:47 am ]
Post subject:  Re: Full Servo Range

Unfortunately, ROBOTC is only able to send a command to the Cortex telling it what the desired position should be; the Cortex then converts that into the pulse train that is used to actually control and move the servo. In some cases, the physical range of the servo (in this case, 180 degrees) falls outside of the standard pulse waves (1.0 ms to 2.0 ms, with 1.5 ms being dead center). This varies from servo to servo and is unfortunately difficult to compensate for before hand.

In this case, since the Cortex (and not ROBOTC) controls the pulse wave output, any range values outside of the standard will not be reachable. The best thing I can recommend in this case is to use physical gearing ratios to access the full 180 degrees of movement (at the cost of servo accuracy).

12/10/12: To clarify; the VEX servos have a listed range of 100 degrees of movement. This is an electrical limit; when ROBOTC sends the Cortex a value of -127, it will move the servo to -50 degrees, and when ROBOTC sends it a value of 127, it will move the servo to +50 degrees. This limit cannot be overcome on the servo itself. The only way to change the range of movement from a servo is to gear the output of the servo appropriately. The servo will still have the electronic limit on how far it can move in one direction or the other, but the output's gearing will help to compensate for this. Hope this helps clarify, and I apologize for any confusion this may have caused.

Author:  getgray [ Mon Oct 21, 2013 1:09 pm ]
Post subject:  Re: Full Servo Range

Actually, many servos travel 180 degrees easily, when sent a pulse width range from 500us to 2300us. I have a servo tester that allows that range and the ones we use work very well with that range.

Problem is, how can we adjust the PWM range in RobotC? Surely there is a way.

Author:  CARBOT [ Wed Oct 30, 2013 12:55 pm ]
Post subject:  Re: Full Servo Range

Another way is to add a circuit that expands and/or shifts the PWM signal between the Cortex and the servo. This only works if the servo electrically and mechanically supports the additional range. I have used the Servo City device on a couple projects for this purpose and as a PWM driver for a weak amplitude signal as well. The 'Servo Stretcher' comes in different formats:

Page 1 of 1 All times are UTC - 5 hours [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group