Basic Servo Motor Controller

3.5 5 2 Product

The circuit is a basic servo motor controller/positioner based on the 555 timer. It is actually a variable duty cycle, constant frequency astable multivibrator. It may be powered from 4.5 to 12V and its power supply voltage must be equal to the nominal power supply voltage of the servo motor. The circuit was actually tested on 5V and the values of the components were tailored to work perfect on a 5V servo motor. Since the timing specifications of the circuit do not depend on the power supply, it seems that the basic servo controller will work perfectly on any voltage from 4.5 to 12V.

Servo motor

Small hobby servos (often called radio control, or RC servos) are connected through a standard three-wire connection: two wires for a DC power supply and one for control, carrying the control pulses. Servo control is achieved by sending a PWM (pulse-width modulation) signal to the servo. A series of repeating pulses of variable width determines the position to be achieved by the servo.

Different servos have different constraints on their rotation, but the neutral position is always around 1.5 milliseconds (ms) pulse width. As long as the refresh rate (how many times per second the pulse is sent, aka the pulse repetition rate) is in a range of 40 Hz to 200 Hz, the exact value of the refresh rate is irrelevant. 

Basic Servo Motor Controller
Basic Servo Motor Controller circuit

The circuit was designed to control servo motors with the following specifications:

  • Power Supply: 5 to 12 V
  • Nominal Control Pulse Repetition Rate = 50 Hz (20 ms / cycle)
  • Counterclockwise/Left/(0°) Control Pulse Width = 1 ms
  • Neutral/Midrange/(90°) Control Pulse Width = 1.5 ms
  • Clockwise/Right/(180°) Control Pulse Width = 2 ms  
Servo control
Servo control

So, our circuit was designed to produce about 50 pulses per second and the width of each pulse can be adjusted between 1 to 2ms. Generally, this range will be adequate for the majority of the commercial available servos.  

With minor modifications on components values or with the use of additional components, the basic circuit can be optimized for use with any other specifications. For instance, by changing the value of VR1 from 10K to 22K the circuit will produce pulse widths on a broader range (from 0.5 to 2.5 ms).

The circuit is a variable duty cycle, constant frequency, astable multivibrator using the 555 timer and differs from the basic 555 astable circuit topology because it uses separate charge and discharge paths for C1. C1 is charged through D2 but it discharges through D1. VR1 potentiometer is used to maintain a symmetrical voltage loss along the two paths and adjusts the duty cycle with slight effect on frequency. When the VR1 potentiometer is adjusted the resistance subtracted from one path is added to the other path. Thus the mark and space time of the output can be varied while maintaining their sum almost constant. This results in variable duty cycle and constant frequency output signal.


List of the comments:
No vote yet
2021-02-19 11:06
It actually worked well for me with a VR1 of 47K.

Give your advice about this item: