I'm wondering if there is a clear and measurable difference or benefit to using a stepper motor as opposed to a standard DC motor controlled via solid state relay?
For my application, I need to move a particular distance, but am having some real difficulty getting my 12v stepper motor (not sure of brand) and Velleman Arduino shield to play nicely.
I've gotten solid-state relays to work no problem, so wondering if I just switch to using a DC motor connected to the relays will that be a similar result?
Best Answer
NO!
Stepper motors, as I'm sure you know, move in steps: whenever your Arduino tells the motor to take a step, it takes one step: often 1/200th of a rotation. They are designed for very high accuracy at the expense of efficiency.
However, that said, they are good motors, you just have to drive them right and not ask them to do what they can't. 95% of problems people have with steppers come from expecting something unreasonable.
The secret to steppers is that the voltage rating means (almost) nothing. In order to get a stepper to produce torque, you have to get current flowing through the windings, which are just big coils of wire with lots of inductance. The result is that, if you're stepping quickly, the current doesn't have time to ramp up to it's full draw.
Graphic example here: I once was driving a medium-sized stepper the same way you were. When it was sitting still, it would draw about 0.7 A/coil. When it was spinning at 5 revs/sec, it would draw about 0.15 A/coil. That's a lot of lost torque.
The solution is to turn up the voltage. With a LOT of voltage, the current will increase MUCH faster, leading to more torque at higher speeds. However, this requires trickery. If you were to just turn up the voltage on your supply, you motor would overheat when it was sitting still. The solution is to have a special drive that can limit the current and turn down the voltage the instant the current hits the rated value.
In fact, this is so much better that some steppers don't list voltage ratings - just current ones.
Some tips for getting them to work:
Brushed DC motors (the 2 wire kind you can control with a relay, NOT the 3 wire brushless motors) turn whenever power is applied across them. They just spin until you cut the power. They have moderate efficiency, good torque, and have lousy inherent positional accuracy. Whereas with a stepper, you could just trust to the stepper's natural positional accuracy, with the brushed DC motor you will need separate sensors to determine the position (like encoders). Brushed gearmotors with encoders (basically servos) are VERY good for speed, efficiency, and torque.
Your system may work with brushed motors, but it will take a redesign.