Using Servomotors with the PIC Microcontroller
Servomotors are used in most RC cars, boats, helecopters and planes. They are often used to control sensitive adjustments such as steering, but have many other uses in robotics and positioning control systems.
Servomotors are basically geared down dc motors with positional feedback control, allowing for accurate positioning of the rotor, with a range of 90 degrees. They can also be modified to allow for continuous rotation.
Servomotors have three wires; usually red, black and white. The red wire is for +VDC, the black for ground, and the white is for position control. This control signal is a variable-width pulse, which can be varied from 1 to 2 ms. The pulsewidth controls the rotor position.
A 1.0 ms pulse rotates the shaft all the way counter-clockwise. A 1.5 ms pulse puts the rotor at neutral (0 degrees), and a 2.0 ms pulse will position the shaft all the way clockwise. The pulse is sent to the servo at a frequency of approximately 50 Hz. The relationship between the pulsewidth and the rotor position can be seen in figure 1 (below).