Servo systems use the error sensing negative feedback method to provide precise angular motion. Servo Motors are used where precise control on angular motion is needed. Servo motors are widely used in the field of Robotics to design robotic arms, palms, legs and so on. They are also used in RC toys like RC helicopter, airplanes and cars.
The interfacing of servo motor using PIC microcontroller has been explained here. Readers are advised to go through the article on Servo Motors to learn basic mechanism and control of servo motor.
A Servo motor has three wire terminals : two of these wires are to provide ground and positive supply to the Servo DC motor, while the third wire is for the control signal. These wires of a servo motor are color coded. The servo motor can be driven only when PWM (pulse width modulated) signals are provided to the control terminal.
The total pulse duration for a typical servo motor should be of 20 milliseconds. The on-time duration of the control signal varies from 1ms to 2ms. This on-time variation provides angular variation from 0 to 180 degree. Also refer Servo motor control using 8051.
According to the above diagram, desired angular position can be calculated by simple interpolations. For example, if the servo motor should be positioned at 45Β° angle, the desired output control pulse can be obtained as follows:
180Β° angular displacement is achieved by the pulse duration = 1 ms
1Β° angular displacement is achieved by the pulse duration of = 1 /180 ms
45Β° angular displacement is achieved by the pulse duration of = (1/180) x 45 = 0.25 ms
So total on-time pulse will be = 1ms + 0.25ms =1.25 ms
Please note that the on-time duration of the control signal may vary based on the manufacturer or certain other conditions. Therefore it is imperative that the on-time pulse for 0Β° and 180Β° positions must be obtained (either from the datasheet or by hit-n-trial) before using a servo motor for an application. The servo motor used here moves to 0Β° at 0.55 ms pulse.
Objective: To interface the servo motor with PIC18F4550 microcontroller and generate pulses to rotate the servo spline in step angles (of 45Β°) from 0Β° to 180Β°. Please check the Video tab to see these rotations. After reaching 180Β° position, the spline is brought back to 0Β° position and the rotation thus continues.
For more detail: How to interface Servo Motor with PIC18F4550