Limimiting current for bipolar stepper motor and L293D?

Hi all,

I recently purchased some bipolar steppers to play around with from here:

Page:http://www.coolcomponents.co.uk/catalog/product_info.php?cPath=46_90&products_id=469

Specs:http://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf

I breadboarded the second circuit as shown in the Arduino Reference here but using an L293D:

I had a switching power supply from an old ADSL modem rated at 12v 1.5A which i would like to use to as my motor power but obviously the current output is a bit high so I am wondering whether i need to limit the current to the chip to stop it from smoking/getting too hot or killing my shiny new motors? and of course, if i do, how to do this effectively i.e a series resistor or some other better method I don't know about?

I had a look on the L293D data sheet but I cant seem to find a maximum input current (i may have missed this or am not understanding correctly as i'm a noob)

Can anyone shed light on this for me?

Thanks.

Ian.

The windings of that stepper draw 0.33A at 12v, which is within the rating of the L293D. So you don't need to provide any current limiting.

Generally, you don't need to provide current limiting when using steppers with a L293D or L298N, you just need to ensure that the current per winding is within the rating of the chip. However, if you are driving ordinary DC motors from one of these chips, then you often need to provide current limiting for two reasons:

  1. The stall current of the motor may be above the current rating of the chip. In this case you need to provide 'fast' current limiting, using current sense resistors and additional hardware. Or use a driver chip with a higher current rating. If the stall current is only slightly greater than the current rating of the driver chip, then putting a resistor in series with the motor may be a satisfactory solution.

  2. If the stall current of the motor is within the current rating of the driver IC, but you leave the motor stalled for a long time (e.g. robot trying to move into a wall), then the motor may overheat. In this case the current limiting doesn't have to act quickly, so monitoring the voltage across the current sense resistor using an Arduino analog input will do the job.

Hi dc42,

To the rescue once again! Thanks for your reply and all very useful info.

Thanks again,

Ian.

Hmm, is it really correct that you do not need any current limiting when using steppers with a L293D? I tried to use a similar setup as dutchboy, a power supply with 12V and 1.5A. But the L293D become verry hot after seconds and the stepper doesn't work correctly after some seconds. So I reduced the input current to 600 mA and now it works. But perhaps it is only necessary to use a heatsink.

Clemens:
Hmm, is it really correct that you do not need any current limiting when using steppers with a L293D? I tried to use a similar setup as dutchboy, a power supply with 12V and 1.5A. But the L293D become verry hot after seconds and the stepper doesn't work correctly after some seconds. So I reduced the input current to 600 mA and now it works. But perhaps it is only necessary to use a heatsink.

The L293D will go into thermal shutdown if it gets too hot. So you need to heatsink it adequately, especially if you are running it near its maximum of 600mA per winding. This is difficult because it doesn't have a tab you can bolt a heatsink to. You really need to use a PCB and solder the ground pins into a large ground plane on top of the board.

The main reason to use current limiting with stepper motors is when you are driving them at higher than normal voltage to overcome the inductance of the coils and get the stepper to move faster. In your situation, reducing the supply voltage would have been sufficient to reduce the current, and therefore reduce the heat dissipated in the L293D.

Hello Sir.

Sir, i really need your help in my bipolar stepper motor. ;( i have already used this circuit http://www.arduino.cc/en/Reference/StepperBipolarCircuit. i've tried it yesterday and its work fine. but when i've tried it awhile ago,,, it is not rotating at all ;(.... i dont knw exactly the problem sir, anyone can help me pls.... im not sure if the transistor is the main problem,. the voltage that i'd used is the 5v of the arduino... tnx in advance..