Electronics  Section

                                                                                                                             <Back to Topics

Controlling a Stepper Motor

The stepper motor is a motor which rotates in steps, unlike in the regular AC or DC motor which rotates continuously.

The stepper motors are specified in terms of step size,  for example if a stepper motor is specified to have 10 degrees step size, then  it means each step of the stepper motor will be 10 degrees.

Here we are going to discuss about unipolar stepper motor, before we start looking in to unipolar stepper motors,  let us discuss briefly about different types of stepper motors

1. Unipolar stepper motor

2. Bipolar stepper motor

these are generally available in the market, along with this we also have other types of stepper motors like High phase count steppers etc., which are behind the scope of this document.

In general,  controlling a unipolar stepper motor is simple because it is easy to  pass current to the each phase winding of the stepper motor and you can observe the stepper motor rotating in a direction. But when it comes to Bipolar stepper motor you need to switch the direction of current for each step. In other words, the current passing through  each winging of the stepper motor will be alternated for each step, there by the stepper motor rotates in one direction.

Now when it comes to controlling a Unipolar stepper motor, first we need to understand the internal circuit of unipolar stepper motor.
I named each phase windings as Phase A,  B , C and E with a common wire, This naming is not a standard, I just did for easy understanding of the circuit.

From the above figure it is clear that the stepper motor will have minimum of  5 wires coming out it.  Some times it can even be 6 wires where there will be 2 common wires. We just need to short those two common wires and treat them as one common wire.

Now using a common wire and phase wire you can rotate the stepper motor by providing it with a voltage source. As you sequentially power each phase one after the other,  you can observe the stepper motor rotating in a direction.

For example if you have a stepper motor with a step size of 10 degrees then you will have 360 / 10 = 36 steps for one complete revolution of stepper motor shaft. which means you need to fire each phase separately one after the other in a sequence for 36 times.

As depicted in the above figure the Firing Sequence is as follows

Step 1: Energize Phase A

Step 2: Energize Phase B

Step 3: Energize Phase C

Step 4: Energize Phase E

Step 5: Energize Phase A

Step 6: Energize Phase B

Step 7:  .. ... ............

.... ... ......

..... ... .....

.. .. ... ......so on until step 36

Step 36 : Energize Phase E


when you finally complete the step 36, the stepper motor shaft would have completed 360 degrees of rotation. By altering the firing sequence you can rotate the motor forward and backward.

The process of energizing a phase can be done by providing a voltage source to the phase wire and to the common wire. For instance if you wish to fire Phase A in the stepper motor with a 5 V DC source then you can do it by connecting the positive terminal of the voltage source to the common wire and the negative terminal to the Phase A wire. It can even be done vice versa but since there are many Driver ICs available in the market which drives the stepper motor by sinking the current, it would be preferred to have the common wire connected to the positive terminal of the voltage source.

Best Viewed in Internet Explorer

With other browsers you may experience improper view

List of Topics --> Electronics

Controlling  a Stepper Motor

Drive a Stepper Motor (using IC STA401A)

Detecting obstacle with IR (Infrared) Sensor

Use Motor as Dynamo, Motor as a Brake, Dynamometer Test


List of Topics --> Software

Simple Program to Blink an LED (using embedded C language)

Code to Control a Stepper Motor

Code to Detect Obstacle using IR(Infrared) Sensor

Articles on C

Data types (under construction)


[Home] [Robotics] [Electronics] [Software] [Contact Me]