Jos van Eijndhoven have designed a 3 channel fan motor controller based on PIC 16F676 microcontroller. Mcu reads temperature from sensors and outputs PWM modulated signal to each output so the speed of fan is controlled accordignly. Three on board potentiometers controls the start up temperature for each channel. The speed of fan is controlled linearly according to temperature and drops slowly when temperature goes down fast to avoid instability. For the output transistors BUZ72 are selected and temperature sensor is LM60. PIC code is written in C and compiled to hex using free CC5x compiler.
Three channel fan speed controller for PC - [Link]