I'm making something that will use stepper motors, and I would really like to know the maximum speed (rpm) they can turn. I've seen some videos of people getting like 2 rotations per second. I really hope they can turn faster than that. I would like to see 20. Is this possible?
The faster they turn, the less torque they have. So if you don't attach anything to shaft, they could probably turn 20 rotations per second (1200 RPM) if it's a motor that's powerful enough to turn the mass of the rotor itself. But a small motor, like for scanners and printers, I doubt they can do 1200 RPM.
Here's a datasheet for some typical Vexta stepper motors:
1200 rpms would be very high for most motors and like Rugged says there would be very little torque available and would be susceptible to missing steps. Keep in mind also that to achieve higher speeds with any significant load your controller must be able to accelerate smoothly to that speed or you will miss steps and hence position.
Since you don't describe your project I have no idea what your requirements are but motion control projects do require a bit of planning to be successful.
Hi, another point is that steppers really are sensitive to Steps Per Second.
So RPM depends on the motor, and how many steps per revolution it takes.
Some motors that have only 64 steps per revolution can probably run higher RPM. Large motors with 200 steps/rev would be less Rpm.
"High" steps/second is 2000 to 3000, and that requires very fast waveforms and fast magnetic field changes, so the stepper driver is critical for high speeds.
2000 steps/sec on 200 steps/rev motor is 10 rev/second is 600 rpm, for example.
I guess my next question is this: what is the best way to control a stepper motor when trying to optimize for speed (using an Arduino of course)? I'm thinking of using full-step drive (with two phases on to get the most torque). And is bipolar or unipolar better? ULN2004 or Darlington array, or something else?
My project, which so far lives only in my head is something like this: I want to draw a line on wood with a soldering iron. Moving slowly would produce a dark line, and moving fast would produce a light light. In order to draw a light line I need to move it as fast as possible. I'm thinking of not using a screw, but pulling it with a string wrapped around the axle of the motor. Yes, this may be unconventional, but I'm going to try it anyway. Any advice is appreciated. Thanks.
Try and get the speed up by using a large diameter spool on the motor so you get more length of string per turn.
To get a motor to run fast you have to supply it with a higher voltage than you need to satisfy the current requirements. Therefore your drive has to limit the current, these are often known as regulating drivers or chopper drivers. The higher the voltage the faster you can go.
This is a popular one:-
Grumpy_Mike:
Try and get the speed up by using a large diameter spool on the motor so you get more length of string per turn.
Yes, I've thought of that too, but that means I would loose precision. I want it both accurate and fast. It's a trade off. In order to get the same precision, I could use a less accurate/fewer step motor with a smaller diameter spool that has to turn faster, or a higher stepped motor with a larger spool that doesn't have to turn as fast. But apparently the 64 step motors can turn faster than the 200 step motors. So do I go for 64 step fast or 200 step slow?
I suppose the question can be rephrased: can a 64 step motor turn 200/64 (3.1) times faster than a 200 step motor? Maybe I just need to read some motor specifications (thanks for that link RuggedCircuits).
No you don't, you only want it as accurate as say 0.1 of the diameter of your soldering iron bit. Any more accuracy / precision is wasted. You might not even need that much, but what ever there is a limit on it.
can a 64 step motor turn 200/64 (3.1) times faster than a 200 step motor
This is a it of a meaningless question, it is like saying can a 6 cylinder engine car go faster than an 8 cylinder engine car.
It all depends on the car, like it all depends on the motor.
You might want to look at the stall speed of a motor. That is the speed it can go when the torque is no longer sufficient to turn an unloaded spindle.
Yes, a 64 step motor will spin faster, but since each step is more distant, it is more likely to skip or loose steps. Since you can send step signals to the motor very quickly (computers are really fast compared to motors) I don't think there is any real advantage to using the 64 step motor over the 200 step motor... just step the 200 step motor faster. The trick is getting a motor and driver that can spin quick enough.
Mike is right that more voltage generally equals more speed, but calculating how much speed you can actually get depends on a lot of things, and more importantly, calculating how large a motor and drive system you need depends on knowing the total weight you are planning to move and how fast you want to move it. There is a lot of information and calculators to help you find all that at:
For example: CoAMarcus^ says:
"Pick the weight of the heaviest item you are pushing around. If it weighs 40lbs, use 40lbs. multiply it by the IPM [Inches Per Miniute] you want. Say that's 1,000 IPM. Divide the result by the magic number "531". The answer is 75.3 Watts".
Watts = IPM * Lbs / 531"
Volts = Watts / Amps, so once you know the power required to move the load at the desired speed, you can find a motor rated for an amperage that will bring the voltage into a reasonable range. e.g. less than 48 volts. And then you can find the minimum voltage from the motors rating and the wattage you need. (see the site above for more)
Finally, you can check to see how fast a specific motor will turn given the amperage, voltage and the motor type and inductance rating in bipolar vs unipolar modes using the calculator on that page. Bipolar gives more torque at low RPM, but unipolar generally will spin a bit faster for the same motor and power supply. See: Slowing 184.104.178.36&c=1&t=45080.5413668981 for examples (bottom of the page) and discussion on motor wiring options.
Given all that, you can then select a driver that provides the amperage, and can manage the voltage you will need, and you can select a motor with the right inductance and wiring for the speed you want. It's a lot of information, but it's also good to learn all this stuff... Good luck!