This is a circuit for controlling the speed of small DC motors, it works nicely as a speed controller for an HO or N gauge model railroad.
The left half of the 556 dual timer IC is used as a fixed frequency square wave oscillator. The oscillator signal is fed into the right half of the 556 which is configured as a variable pulse width one-shot monostable multivibrator (pulse stretcher). The output of the one-shot is a variable width square wave pulse, the pulse width is set with the speed control pot on the control voltage input. The variable width output pulse switches the IRF521 MOSFET transistor on and off. The MOSFET amplifies the current of this signal so that it is powerful enough to control a small DC motor.
The 311 comparator is used to cut off the one-shot via the reset pin when the control voltage is below a certain threshold, the 311 is also controlled by the speed control pot. The cut off circuit is necessary because the 556 one-shot circuit will always put out a small pulse, even when the control voltage is at zero.
Adjust the 10K cutoff pot so that the motor is completely off when the speed pot is fully counter clockwise.
Connect a source of 12V DC power to the DC power input, connect a DC motor to the DC motor output. Adjust the speed control for the desired motor speed.