10 Jan 10
This is a simple generalized discussion for the non electric engineer / robotic / CNC hobbyist.
This is not intended as a scientific treatise.  It is in simple English with no formulas/jargon etc.

In general a DC motor can be run at any voltage that the windings will tolerate.  Meaning that the voltage applied does not over heat or short the windings.  Over time the heat build up can destroy the magnets in the motor so how long you apply the current/voltage has an effect also.  If the current is high encough to cause sparking at the brushes that will destroy the commutator in a short while..

The voltage controls the speed of the motor and thus the torque generated.  As the motor speeds up it acts as a generator and when there is enough generated voltage to oppose the applied voltage the motor stops speeding up.  When you put a load on the motor is slows down, the back voltage drops and the difference is the power that is available to do useful work. (Unlike AC motors which run at pretty much the one speed for which they were designed.)

In general the thicker the wire in the windings, the more amperage the motor will need and the higher the speed/torque that it will provide.  The heat loss into the motor is expressed as I*I*R which is the square of the amperage times the resistance of the windings.  So the higher the amperage the more the motor will heat up.  The upper limit of the temperatur tolerated is the failure temperature off the insulation on the wires and the temperature of the destruction of the magnets, whichever comes first.

Amplifiers are needed to amplify the TTL signals that the computers produce into high voltage and high amperage signals that will be strong enough to run the motors.

In our case the the most important consideration is the amperage and voltage capacity of the amplifier selected to run the motor.  The amplifier must be able to handle the needs of the motor without over heating and destroying itself.  A number of amplifiers that can handle the kind of power that we need are available. 

In this discussion we will limit ourselves to the use of incremental encoders that provide a two phase quadrature signal.

Encoders allow you to determine how far the motor has moved and how fast it is moving.  By watching the encoder and modulating the energy provided to the motor you can start, stop, speed up and slow down the operation of the motor at will.  This is done by monitoring the encoder position and providing the motor with thte energy it needs to do what you want it to do.  A number of controllers are available to make this task easier.

You can position the motor right to the edge on one of the encoder holes.  This means that if there are 6 holes in the encoder you can position the motor to within 1/6th of a revolution.  Some controllers allow positioning to within 1/4th of an encoder count so that a 6 hole encoder would allow positioining to within 1/24th of a revolution.

Controllers as their name implies, control the motors through the amplifiers with feedback from the encoders.  What the controller does and how it does depends on the controller you select.

A general discussion about DC motors with attached encoders.
EncoderGeek / EncoderGeek
Motor Discussion