Beginners Robotics Guide : Stepper Motors

Rating: 3 votes, 4.00 average.
A small introduction to stepper motors and how to use them and the circuit and logic required to get them up and running .

Stepper Motor?? ehh...

Stepper Motor is widely used in CNC machine drives, robots, and wherever an accurate positioning is required. In such applications, step angle, direction, operating modes( single coil or double coil), speed and position are important considerations.

You might be thinking ..Why stepper? why not servo?

Because servos don't give precision to the extent of controlling step.. This is required in case of high precision projects like robots. So you can consider steppers as the ballet dancers in the field of motors.

Whatever that meant.. The basic thing is that steppers are a necessity and so is the need to know about them.

The basic question remains.

WHAT IS A STEPPER MOTOR?? For all the engineering students.. stepper motor is a simple dc motor with a permanent magnet rotor and a stator with armature consisting of coils. These coils produce a magnetic field when suitable current flows through them.... This field produces a torque in the rotor which makes it rotate.

And for all the non engineering students.. It is a simple motor which rotates when you give current to specific coils

How to work with a bipolar stepper motor

On this page I introduce a circuit to connect a bipolar stepper motor to any standard digital system, such as a microcontroller system or the RS232 interface.

A stepper motor can be represented as a rotating permanent magnet with 2 coils that attract or repulse the poles of the magnet. This type of stepper motor can be recognized by counting the leads. It is connected by 4 leads, the other family of stepper motors has 6 leads, they do not work with this stepper motor controller.

One can have the stepper motor to rotate by sending positive and negative currents through its coils in a scheme below. Positive and negative currents are denoted by '+' and '-' respectively, '0' represents zero current.

Coil 1 Coil 2
+ =====>0
0 =====> +
- =====> 0
0 =====> -
.. =====> ..

How to find out which leads belong to which of the coils. Just take any two leads and connect them to a suitable power supply. If the motor gets stuck in one position: BINGO! The leads belong to the same coil. If nothing happens, the leads do not belong to the same coil, try again with another set of leads.

My idea is to control this system through quadrature signals Q1 and Q2 that come from 5 volt logic ICs. The controller has to transform and amplify these quadrature signals into the currents above.

Quadrature signals can be written as follows:

Q1 Q2
0 0
1 0
1 1
0 1
0 0

The circuit schematics of a possible solution are here:

Click image for larger version. 

Name:	steppercircuit.gif 
Views:	722 
Size:	10.2 KB 
ID:	206

For the signals Q1 and Q2 you can use any signal level between +5 and +12 volt. You can use almost any type of diode, the type of transistor is not very critical either.

The BC548 transistors are used as inverters and as a means to adjust signal levels. It is them who interface between the 5 volt Q1 and Q2 signals and the 12 Volt power signals.

The BD138 and BD139 transistors form the current amplifiers of the circuit. The diodes make sure that parasitic self inductance effects of the coils do not destroy the transistors.