Driving a Stepper Motor with the ULN2002 and ULN2003 (MEC162E)

This circuit is adapted from my book Robotics, Mechatronics and Artificial Intelligence (sold out) published in the United States. It can be used as a shield for stepper motors in mechatronics or robotics projects or as a building block for more simple projects.

Stepper motors with current requirements up to 500 mA can be driven directly from ICs of the ULN200X series. These ICs are formed by paired power transistors, including the base resistor and the diode to protect them against the voltage spikes generated when the windings of the stepper motor are switched on and off. 

The difference between the two types is that resistors of different values are placed at their inputs.

In the ULN2003, the we find a 2,700 Ω resistor, matching the characteristics of the IC with TTL logic. In the ULN2004, the resistors at the input of each stage are 10.5 kΩ units, matching its characteristics with CMOS logic.

The circuit in Figure 1 shows how the ULN2002/3 can be used to drive a stepper motor using up to 500 mA. This IC doesn’t need a heat sink and can be powered with voltages up to 12 V.


Figure 1 – Using the ULN2002/2003
Figure 1 – Using the ULN2002/2003