Assumption: Some mechanism exists to sense RPM, either through an encoder attached to the motor shaft, or via back-emf sensing.
An approach to achieve better results that what the question describes, for low RPM operation of a motor, is to use a PID controller algorithm thus:
- Motor is provided maximum rated power at start-up, as specified in the motor datasheet
- As the RPM sensed approaches the desired set-point, the power is systematically reduced my modifying the triac trigger phase
- Once the RPM set-point is achieved, the PID controller continues to sustain that RPM by increasing or decreasing power to compensate for loading effects
- If load drives the motor to stall, or beyond acceptable power ratings, the controller initiates a controlled fail-safe spin-down of the motor, and also triggers an alarm indication.
From the Wikipedia article linked above, this graph might help explain this process visually:
Depending on the acceptability of overshoots (or not) and desired system behavior, the Proportional (P), Integral (I) and Derivative (D) values of the PID algorithm need to be tuned. The diagram above specifically covers tuning the I value: For absolutely no overshoot of RPM, but with greater time to reach set-point, the red line on the graph shows the preferred behavior, as achieved with a Ki = 0.5.
On the other hand, the black trace, with Ki = 2, achieves (and overshoots) the set-point fastest, and then over/undershoots the set-point in diminishing cycles till it settles down.
There exist excellent motor controller ICs which incorporate both back-EMF sensing (if applicable to your type of motor) and PID controlling, in one package.
Also, assuming the OP has limited experience in designing such systems, off-the-shelf PID controllers for motors are available for a variety of power ratings. These allow a set-point to be interactively set, along with tuning parameters or constraints.
There are also several projects by hobbyists out there, designing and implementing PID AC motor control using microcontrollers or microcontroller boards. For instance, see this YouTube video, for one such Arduino-based PID controller for AC motors.
Links to details are provided in the description text of that video.
Best Answer
There have been many improvements in motor construction over the last hundred years. I'd guess you're probably using a two-pole motor, since many project books describe such motors; a three-pole motor will likely work much better. In a two-pole motor, you must make sure there's a big enough gap between poles to ensure that the commutator never poses a short across the supply. Assuming that's the case, you may be able to reduce arcing by installing a pair of back-to-back Zener diodes across the coil (on the rotor). Something like 12-15 volt diodes should probably be pretty helpful. Make sure to keep an eye on their temperature, though; depending upon various factors, they may end up absorbing a fair amount of energy. Zener diodes can tolerate getting pretty hot, but beyond a certain point they may fail shorted, and the current from a lantern battery may be sufficient to make them fail dramatically. Still, I would expect that 12-15 volt diodes may help with your arcing problem.
Another thing I would suggest is that you avoid metal-on-metal contact; carbon brushes are apt to be far less problematical. Pure copper tends to oxidize quickly, and copper oxide is an insulator. If you can put a reasonably smooth layer of solder on your commutator that may improve things considerably.
An alternative approach (since this is an electronics forum after all) might be to add to the motor a position sensor, and then use electronics to switch the current to it. Two approaches may be useful here: (1) keep the mechanical commutator to reverse polarity, but use electronics to ramp down the current flowing to the motor before the commutator switches, so that the commutator never has to switch under load; (2) replace the commutator with side-by-side solid rings, and then use a circuit called an "H-bridge" to control the polarity. Both approaches would enable some explorations which would not be possible with a purely-mechanically-commutated motor.