DC motors run on direct current in comparison to the AC motors which use alternating current in their operation. Direct current is one sided or fixed type of electricity in which voltage remains constant. The electricity available in homes and offices is alternating in nature and it needs to be converted to direct form before a DC motor can use it.
The conversion is performed by a circuit known as rectifier. The speed of DC motor can be controlled by changing the voltage provided to it, and a DC motor controller does just that.
Identify if your DC motor uses a rectifier in its circuitry or not. If the circuit is free of any transformer it will be a lot safer for you to play around with your DC motor while it is running. The performance of DC motor is measured by the voltage supplied to it, the higher the voltage the faster the motor will rotate.
The easiest way to get a variable DC voltage is to use a variable resistor. This is where rheostat finds its use in this project, as rheostat is a type of variable resistor which produces different resistance depending on the position of the pin on the resistance wire. Rheostat is the same device used in the speed control of electric fans at homes.
Design the speed controller for the DC motor in computer software such as Proteus. If the circuit is simple make it on bread board. If its complex, you will have to print it on etching paper and then transfer the circuit to a PCB board.
You can also use a programmable micro-controller in your project if you do not want to adjust the speed of the motor manually. By using an embedded controller, you can eliminate the need for any sort of manual speed controller in the project. If you are using 8051, then you can program a fixed Pulse Wave Modulation (PWM) to be generated at the specific port of the controller. This PWM will be then used to control the speed of the DC motor.
Since PWM is a waveform, the power of the wave can be adjusted by varying the form factor of the pulse wave modulation. If you want to run your motor at a constant speed you will need fixed PWM. However, if you want to increase the speed of the motor gradually and then decrease it slowly; write the code for that yourself.