ULN2003A Darlington array Based DC Motor Driver


DC motor control using ULN2003A Darlington Array

In terms of DC motor controlling ULN2003A will not be the great option as it does not support direction change of the motor. However there are few other advantages of the driver.

  • 500mA Rated Collector Current
  • High Voltage Outputs (50V)
  • CMOS, TTL compatibility
  • Inclusion of Suppression Diodes (Easy to drive inductive loads like motors, relays etc)
  • Outputs can be connected in parallel to achieve higher current ratings

Lets see how it reacts on the input states. We'll use Proteus to simulate.

ULN2003A Simulation
ULN2003A Simulation

ULN2003A Simulation Oscilloscope Output
ULN2003A Simulation Oscilloscope Output





ULN2003A darlington array works like a not gate. Also note that we need to add load in order to simulate the output state.


Now lets see how we can use it as a DC Motor Driver

For this exercise also we can use Proteus to simulate.

ULN2003A DC Motor Control
ULN2003A DC Motor Control




Output from the Oscilloscope is same as the previous one above. Also note that I had to pulldown the input pin due to Switch resistance, Input impedance and the supply frequency. In practical, it may not be necessary but, better to put a resistor. Also it will even help to reduce noise due to human touch and EMI etc. Addition of a smoothing capacitor for the power source will make it more robust if power source is not a battery.

Most importantly this motor driver is not an ideal solution for many cases as it cannot operate bi-directional. (Cannot change the direction of the motor) So there are better options like L298, L293 etc.