A stepper motor’s shaft has permanet magnets attached to it. Around the body of the motor is a series of coils that create a magnetic field that interacts with the permanet magnets. When these coils are turned on and off the magnetic field causes the rotor to move. As the coils are turned on and off in sequence the motor will rotate forward or reverse. This sequence is called the phase pattern and there are several types of patterns that will cause the motor to turn. Common types are full-double phase, full-single phase, and half step. To make a stepper motor rotate, you must constantly turn on and off the coils. If you simply energize one coil the motor will just jump to that position and stay there resisting change. This energized coil pulls full current even though the motor is not turning. The stepper motor will generate a lot of heat at standstill. The ability to stay put at one position rigidly is often an advantage of stepper motors. The torque at standstill is called the holding torque.Because steppers can be controlled by turning coils on and off, they are easy to control using digital circuitry and microcontroller chips. The controller simply energizes the coils in a certain pattern and the motor will move accordingly. At any given time the computer will know the position of the motor since the number of steps given can be tracked. This is true only if some outside force of greater strength than the motor has not interfered with the motion.
An optical encoder could be attached to the motor to verify its position but steppers are usually used open-loop (without feedback). Most stepper motor control systems will have a home switch associated with each motor that will allow the software to determine the starting or reference “home” position.
There are several types of servo motors but I’ll just deal with a simple DC type here. If you take a normal DC motor that can be bought at Radio Shack it has one coil (2 wires). If you attach a battery to those wires the motor will spin. See, very different from a stepper already!. Reversing the polarity will reverse the direction. Attach that motor to the wheel of a robot and watch the robot move noting the speed. Now add a heavier payload to the robot, what happens? The robot will slow down due to the increased load. The computer inside of the robot would not know this happened unless there was an encoder on the motor keeping track of its position.
So, in a DC motor, the speed and current draw is a affected by the load. For applications that the exact position of the motor must be known, a feedback device like an encoder MUST be used (not optional like a stepper).
The control circuitry to perform good servoing of a DC motor is MUCH more complex than the circuitry that controls a stepper motor.
Often when talking about robots the word “servo” really means an RC (remote control) servo motor. This is a small box designed for use in hobby airplanes and cars.
Inside this box is a complete servo system including: motor, gearbox, feedback device (pot), servo control circuitry, and drive circuit. It’s really amazing that they can stick all of that in such a small package.
RC servos normally have 3 wires: +v, ground, control. The control signal is a pulse that occurs at about 50hz. The width of the pulse determines the position of the servo motors output. As you can see, this would be pretty easy to control with a digital controller such as a Basic Stamp. Most will run on 5-6 volts and draw 100-500ma depending on size.
By Roger Arrick