Arduino Unipolar Stepper Motor Control
In the last Arduino project, I made a simple motor controller that controls the speed and direction of rotation of CD-ROM bipolar stepper motor. Now I’m going to show how to do the same thing with a unipolar stepper motor. The stepper motor used in this example is 28BYJ-48 which usually comes with its driver board.
basically there are two types of stepper motors: bipolar and unipolar. The bipolar stepper motor is a two-phase brushless motor which has two coils (windings), this motor has 4 wires (2 wires for each coil).
The other type is the unipolar stepper motor, it is a 4-phase brushless motor that has 5 or 6 wires.
The popular controlling modes of the stepper motor are: full step and half step. The full step can be divided into 2 types: one-phase and two-phase.
In full step one-phase mode the driver energizes one coil at a time. This type of controlling requires the least amount of power but provides the least torque.
In full step two-phase mode the driver energizes the two coils at the same time. This mode provides the highest torque but it requires twice as much power as one-phase mode.
There is another controlling type called micro stepping, this type is more accurate than the half step mode, it requires two sinusoidal current sources with 90° shift.
In this example I’m going to use the full step two-phase mode for controlling the unipolar stepper motor.
Usually the unipolar stepper motor has 5 wires one for motor supply and the other for coils. This motor has 4 coils and they are connected as shown in the figure below:
As shown in the above image there are 4 coils: A, B, C and D. These coils has a common point named in the figure Motor supply which connected to positive terminal of power supply source. Other coil terminals are connected to a motor driver.
The unipolar stepper motor can be driven with L293D motor driver or ULN2003A Darlington transistor array IC. In this example I’m going to use the ULN2003A (or ULN2004) chip.
In the full step control mode always two windings are energized at the same time according to the following table where 1 means the coil is energized and 0 means not energized (both directions are shown):