Often, people attempt to control DC motors with a variable resistor or variable resistor connected to a transistor. While the latter approach works well, it generates heat and hence wastes power. This simple pulse width modulation DC motor control eliminates these problems. It controls the motor speed by driving the motor with short pulses. These pulses vary in duration to change the speed of the motor. The longer the pulses, the faster the motor turns, and vice versa.
R1 1 Meg 1/4W Resistor
R2 100K Pot
C1 0.1uF 25V Ceramic Disc Capacitor
C2 0.01uF 25V Ceramic Disc Capacitor
Q1 IRF511 MOSFET IRF620
U1 4011 CMOS NAND Gate
S1 DPDT Switch
M1 Motor (See Notes)
MISC Case, Board, Heatsink, Knob For R2, Socket For U1
1. R2 adjusts the speed of the oscillator and therefore the speed of M1.
2. M1 can be any DC motor that operates from 6V and does not draw more than the maximum current of Q1. The voltage can be increased by connecting the higher voltage to the switch instead of the 6V that powers the oscillator. Be sure not to exceed the power rating of Q1 if you do this.
3. Q1 will need a heatsink.
4. Q1 in the parts list can handle a maximum of 5A. Use the IRF620 for 6A, if you need any higher.
Source: Electronics Lab