0
$\begingroup$

I am using FPGA board and servo, I read that with PWM I can control where the servo will rotate. If the duty cycle in PWM is 1.5 ms it goes to the center, if it is 2 ms it goes to clockwise and if it is 1 ms it rotates to counter-clockwise. But, I couldn’t find any clue on how to control the speed of the servo. Can you help me please?

$\endgroup$
1
$\begingroup$

Vary the voltage to the servo. If your servo operates full power at 5V at 2.5V it will operate at half speed.

If your FPGA can output an analogue signal you could use that to drive the motor speed, otherwise you'll need to put in a DAC to get the analogue signal.

| improve this answer | |
$\endgroup$
0
$\begingroup$

Many of the dedicated servo-controlling boards include an option to set the speed for each servo. I know for a fact that the Pololu Maestro boards do (as I've used those myself), and I'd expect that the Lynxmotion and Adafruit branded boards also have that feature. But, FPGA boards don't have it built in. You'll need to create your own function to send a signal for incremental movements at an interval.

Lowering the voltage can work, but I believe that it lowers the torque as well, so that may not be ideal for your situation.

| improve this answer | |
$\endgroup$
0
$\begingroup$

The main application of servos is to move to a position, not at a constant speed, but in order to change the speed while maintaining the torque, you can simply slowly change the pwm duty cycle from one value to another (eg 1500 to 2000) and the servo will slowly move. If you would like to control the velocity precisely, then a motor with an encoder output would be better.

| improve this answer | |
New contributor
Syntactic Garbage is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.