ULN2003 stepper motor driver overheating

I am running a stepper with 6v and the Arduino powered with USB. Although the stepper seems to be running correctly, the ULN2003 is heating up very fast. Troubleshooting this problem is problematic as I don't have adequate experience to focus on the likely cause. Would you please advise where to start? I am using the two wire - http://arduino.cc/en/Reference/StepperUnipolarCircuit


The winding resistance determines the amount of current being drawn from the driver chip. Do you know the resistance specifications of the windings?

To lower the heat you can either lower the 6vdc motor voltage or install low value resistors in the motor winding leads.


Does the uln2003 stop working ? Are you powering the motor from the Arduino board ? (NOT recomended)

It is not uncommon for the uln2003 to get warm, but i should not be TOO warm.

You need to find the specs for the stepper motor to check it's current requirement. You should be able to draw 0.5A from each pin on the uln2003, but not from all the pins at the same time since the chip as a whole has an upper limit to how much power it can dissipate. It can't remember that limited of the top of my head right now.

You can calculate how much you can draw through a ULN2003 by looking at the data sheet and applying it to this technique:-

The nominal voltage is 24V, 30ohms. The motor is powered by a 6v/3.6A max current. USB or 9v battery is powering the Arduino. The motor is unpredictable, sometimes turning, but otherwise just pulses. Your advise is appreciated. Thanks.

The nominal voltage is 24V, .... powered by a 6v/3.6A

That's the problem, you don't have enough power to drive it. It looks like you are pulsing the motor too fast for this low voltage you are using.

This IC is far too puny to drive this motor which is why it is over heating. Remember my pages saying that 650mA was the maximum you could switch from this package without over heating it. Even running it at 6V (which looks like it is not enough) you are taking 800mA which is too much.

You need to use something with a bigger drive capability like four power FETs.

I can think of 3 possible problems here :

You are powering a 24V motor with 6V this might be too little.

The "pulsing / sometimes turning" can be because you try to step the motor too fast.

you have not connected the ULN2003 ground to the motor supplys ground and Arduinos ground.

EDIT : once again Grupmy was faster than me :-)