Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

speed of stepper motor!!

Status
Not open for further replies.
i m using a stepper motor having specification 12 V 150 ma.. i m using uln2003 as motor driver..At present i m driving the motor at 15v but the problem is that the motor is rotating very slowly.the pulse frequency given to the motor is high enough so its not the problem..how can i increase the spedd of the stepper?
 
Jack up the voltage. WAY up. Like 48V or more, seriously. That voltage rating is the DC equivalent, when you pulse it you really need to hit it with a high voltage to get the current up fast enough in that inductor to generate some amp-turns and move the thing.

Limit your pulse widths so at low speeds you don't fry the coils.
 
Last edited:
Jack up the voltage. WAY up. Like 48V or more, seriously. That voltage rating is the DC equivalent, when you pulse it you really need to hit it with a high voltage to get the current up fast enough in that inductor to generate some amp-turns and move the thing.

Limit your pulse widths so at low speeds you don't fry the coils.
while that will keep the coils from frying it is a bit rudimentary. if you insist on not using a real motor control (chopper), that will work but will not have good torque at low speeds.

Dan
 
In one application I actually chopped the chopper. Reduced the current draw at slow speeds over a lower but continuous duty cycle. I discovered it accidentally because of a bug in my code, but left it in as a "feature". Probably had something to do with a mechanical resonance.

In another stepper motor application, where I was spinning a large disk, I found a compliant coupling improved the acceleration more than several changes to the drive and code. A few years later I saw where a guy inexplicably moved a stepper motor on a robot from direct drive to doing it through a belt. I think he got the same results I did. The stepper can generate a high impact force, but energy is force over distance, and the compliant fitting allows for that short but important travel.
 
In one application I actually chopped the chopper. Reduced the current draw at slow speeds over a lower but continuous duty cycle. I discovered it accidentally because of a bug in my code, but left it in as a "feature". Probably had something to do with a mechanical resonance.

In another stepper motor application, where I was spinning a large disk, I found a compliant coupling improved the acceleration more than several changes to the drive and code. A few years later I saw where a guy inexplicably moved a stepper motor on a robot from direct drive to doing it through a belt. I think he got the same results I did. The stepper can generate a high impact force, but energy is force over distance, and the compliant fitting allows for that short but important travel.
along those lines, you can significantly increase the torque if you are not going at high speed by sacrificing holding torque for the impulse torque.

It is a deminishing rate of return since while the torque is directly proportional to current, the power dissipation is a squared term. If you double the peak current you can only apply it for a quarter the time to keep from over heating the motor.

Dan
 
That diminishing rate of return, the complexity of the algorithms, a drive that is at least as complicated as an H pattern driver, and the cost of the motors themselves always make me ask the mechanical guy why he wants to use one of the damned things in the first place. If he doesn't have a real good reason, I send him away with a nice little PM brush type motor, or sometimes an underappreciated shaded-pole AC motor that will do the job cheaper and better and gets implemented in a fraction of the time.
 
That diminishing rate of return, the complexity of the algorithms, a drive that is at least as complicated as an H pattern driver, and the cost of the motors themselves always make me ask the mechanical guy why he wants to use one of the damned things in the first place. If he doesn't have a real good reason, I send him away with a nice little PM brush type motor, or sometimes an underappreciated shaded-pole AC motor that will do the job cheaper and better and gets implemented in a fraction of the time.

that depends a lot on the size of the motor, if you need positional accuracy, and how familiar you are with semiconductor sources.

I get annoyed with the L298 or whatever it is H bridge that is constantly being used. It is often being used in 12V systems liturally throwing away a quarter of the power. Allegro has a very good selection of drivers and I usually recommend the FET with translator versions. All you need is a couple current sense resistors and an oscillator with a few selects tied off to make a microstepper drive.

A FET driver with translator does the same for an external FET bridge for up to 50V or 75V for higher currents. At higher voltages you would need separate FET drivers with translators, but still relatively simple.

Dan
 
There are lots of H bridge drivers, I rarely use any of them because I can generally make a more efficient one out of discrete components. The L298 is a classic example - what idiot uses an NPN for the high-side driver like that? With the base going only as high as the motor rail, you are going to suffer a .7V drop on TOP of the saturation voltage drop. A PNP would be better, a P-channel MOSFET with a low Rds better still.
 
while that will keep the coils from frying it is a bit rudimentary. if you insist on not using a real motor control (chopper), that will work but will not have good torque at low speeds.

Dan

Torque increases when applying wave-drive.
 
Originally Posted by duffy View Post
Jack up the voltage. WAY up. Like 48V or more, seriously. That voltage rating is the DC equivalent, when you pulse it you really need to hit it with a high voltage to get the current up fast enough in that inductor to generate some amp-turns and move the thing.

Limit your pulse widths so at low speeds you don't fry the coils.


uln specifications:

Symbol Parameter Value Unit
VO Output voltage 50 V
VI Input voltage (for ULN2002A/D - 2003A/D - 2004A/D) 30 V
IC Continuous collector current 500 mA
IB Continuous base current 25 mA
TA Operating ambient temperature range - 20 to 85 °C
TSTG Storage temperature range - 55 to 150 °C
TJ Junction temperature 150 °C

i m giving the com pin of uln a voltage of 23v. and acc. to datasheet the max. in put voltage is 30v.will my ic not burn if i give a voltage upto 48v?
 
They are darlingtons, the input is what you are driving the base with, and that shouldn't be anything NEAR the motor voltage. The "output voltage" is the collector breakdown voltage, and it's good for 50V. "com" is the common cathode for the backspike diodes, it should be at the motor positive rail.

If that motor is bigger than your thumb, I wouldn't use that chip at all. It's designed for little stuff like relays and dot-matrix print heads.
 
motor specifications:

# 1.8 degree step angle. - 200 Steps per Revolution
# Holes on 4 corners for mounting
# 12 V 150 ma.
# Weight 160gm
# Size 38x38x30 mm.

i m telling u exactly what circuit i am using . please suggest me with a way to speed up the motors..
i m using uln2003 as the motor driver..4 input pins are connected to the comp via parallel port..i m using matlab to generate pulses..the code used is:

parport= digitalio('parallel','LPT1');

addline(parport, 0:7, 'out') ;

while(1)

putvalue(parport,1110);

pause(0.0001);

putvalue(parport,1101);

pause(0.0001);

putvalue(parport,1011);

pause(0.0001);

putvalue(parport,0111);

pause(0.0001);

end
a high pulse give about 3.2v at input pin of driver..

pin no. 9 of the driver, i.e , common pin is given a votage of 23v..
4 coils of the motor are connected to the output pins of driver..
the 5th wire of the motor , i.e , the common wire is again given a voltage of 23v..

what should i do to increase the speed..should i change the ic,increase the voltage or anything else??
plese hepl me out!!
 
Looks like your drive code is inverted. Try this -
Code:
putvalue(parport,0001);
pause(0.0001);
putvalue(parport,0010);
pause(0.0001);
putvalue(parport,0100);
pause(0.0001);
putvalue(parport,1000);
pause(0.0001);

Those drivers take high level inputs. The way you have them now you will have 3 coils on at one time, and you only want 1 on.
 
Last edited:
i tried the code u said but the motor is still slow..are the other connections correct..do i need to increace the com. voltage??
the motor is giving approx. 19 rpm while we held the bot in our hand.
 
Did you look at the outputs on a scope to make sure the timing is what you think it is? That pause looks like it might be for 100µS, that's 10,000 steps/second, which works out to 3,000RPM, which seems way too fast, especially for a stepper.

Do you ramp the speed up from stop? If not, you need to write a routine to gradually reduce that pause value from something that starts around a tenth of a second or so down to your final value. Unlike a regular motor, a stepper will not automatically accelerate to the final value.
 
Last edited:
yup, the pause is 100us..i will reduce the pause to .1..
should i increase the com pin voltage or 15 is sufficient??i checked the voltage at output pin and it came out to be 10v(which i assume is due to pwm with peak voltage of 40v)..
can i still increase the speed by placing resistance in the motor wires??
what does the output voltage of pin depends on??
thanks 4 helping me!!
 
15V for now, the real problem seems to be the software. Yes, you can put limiting resistors in it, this is a common way to increase speed, it reduces the time constant of L/R.
 
Software problem because you don't have an acceleration routine. Worry about the resistance later.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top