Electronic – arduino – stepper motor overheating

arduinocurrentstepper motor

I'm using an Arduino to control[1] 2 stepper motors [2][3] (both obtained from scraped printers and I can't seem to find datasheets for them). First I used a 12V 0.5Amp power supply, that worked for each motor separately (although [3] lacked some torque), but when connecting them together the motors stalled. I then connected a 14V 1Amp power supply and both the motors ran fine, apart from the fact that motor [2] got extremely hot, I understand that due to it's lower resistance it takes the grater share of the current while it is probably rated for lower current in the first place. As you might have gathered I'm working with a nearly non-existent budget, and my knowledge of electronics is rudimentary at best, I don't have a variable power supply, I'm basically working off scraps…

My question is how do I divert more current to motor [3]?

I thought of placing a resistor (something like 30-40ohm) on the motor [2] circuit, but that resistor would have to have a very high power rating, and, wouldn't it create a voltage drop? I think [2] is rated for 24v, and I'm already providing it with only 14v…

Another option I read about is using PWM to control the current, the problem I have with this is that it would cast me 2 extra PWM pins on the Arduino and I'd rather save them for other things (I have an Uno, so only 6 PWMs).

[1] Using L293D quad half-bridge.

[2] Mitsumi m35sp-9t resistance 10ohm

[3] Malaysia 42sin-15k8na 28ohm

p.s. I expect many people here would wince at my messy, inaccurate, quick and dirty, trail and error approach to electronics, being a programmer, I understand how you feel, but I'm not building a control system for the mars rover, I'm just trying to learn electronics by doing electronics.

Thanks.

Best Answer

A properly designed chopper PWM current regulator will let you run the motors much faster while maintaining torque than other other solution.

As the rotation speed and thus commutation frequency of a stepper motor increases, the winding inductance begins to present a larger and larger reactance, and limit the current which will flow at rated voltage. The solution is to use a power supply much above the rated voltage, but use a chopper current regulator to prevent overheating the motor or damaging its permanent magnets from excessive field strength.

The power resistor and higher voltage supply method has enough advantage over "nothing" as to have been used in some large stepper motor systems before choppers became affordable, but is a far inferior solution to active current regulation.

In terms of available pins, remember that once you start putting any ICs on a board, putting an additional ATMEGA xx8 on a board becomes fairly economical, too - you don't need a whole Arduino, and the prices for what you do need range from about $2-$4. It's not uncommon if someone is going to the trouble of marketing a stepper power amplifier module for hobby/robots use to put a microcontroller on it and give it a serial command interface instead of raw step/direction per motor.