What's the best way to control a 12 volt DC motor?
As far as I can tell there are two normal ways to control a DC motor.. 1) Vary the DC voltage - i.e. run it at 8 volts for slow speed, 10 volts for medium speed, or 12 volts for full speed. 2) Use PWM (aka a 'chopper') effectively this involves taking your 12 volt DC voltage and turning it on and off very quickly to vary the speed of the motor.
Which is best and why? Most arduino based designs seem to use PWM but to my thinking it seems more complicated than simple voltage control. Or maybe there's something I'm missing (there usually is!)