| Basic theory of Stepping Motors |
![]() |
|
|






A
stepper motor's shaft has permanent magnets attached to it, together called
the rotor. Around the body of the motor is a series of coils that create
a magnetic field that interacts with the permanent 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 a certain sequence the motor will
rotate forward or reverse. This is called the phase pattern and there
are several types 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. This is the main way steppers
generate heat, when at standstill. This 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 on and off coils, they are
easy to control using digital computers. The computer 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 stored. 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 this is not necessary.
A stepper motor can be run in "open-loop" mode (without feedback
of an encoder or other device). 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.
Servo motors:
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 servo, the speed and current draw is 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.
RC Servos:
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.