555 Servo Circuit

From Mech
Revision as of 13:12, 25 May 2006 by Lynch (talk | contribs)
Jump to navigationJump to search

Introduction

This paper describes how to build a circuit for driving an RC Servo motor. It uses two LM555 IC’s to create the pulse train that drives the motor. For an RC Servo, the width of the “high” pulse determines the angle of the rotor. Sample values for creating a working circuit are given.

Circuit Construction

Two 555 timers are used to create the servo control signal. The pinout for the LM555 is shown below:

555 pinout.jpg

The first 555 timer creates a clock signal at our desired frequency. The circuit for this is shown below:

555 circuit1.jpg

This circuit is referred to as an “Astable Multivibrator” in the LM555 datasheet. The sizes of Ra, Rb, and C1 determine the shape of the clock signal. We want the clock signal to look something like this:

555 clock.jpg

The values of T1 and T are given by

T1=0.693*Rb*C T=0.693*(Ra+2*Rb)*C

We want T to be around 20ms and T1 to be smaller than the minimum pulse width we will send to the RC Servo (T1≤0.3ms). Here’s some sample values:

Ra=330kΩ, Rb=1.5 kΩ, C1=0.1 μF → T1 = 0.1 ms, T=23 ms

The second 555 Timer circuit is a “pulse width modulator”, shown below:

555 circuit2.jpg

The combination of Rc and C2 determines the time that the output is high. Good values are

Rc = 15 kΩ C2 = 0.1 μF

which give a time constant of τ = 1.5 ms.

Using the values given in this document, you will get the following relationship:

Analog In (V) Control Voltage (V) Pulse Width (ms) Servo Position
1.1 ~1.1 ~0.388 One end
4.4 ~4.0 ~2.375 Other end