The system behaves in one of two modes - autonomous mode or manual mode. Mode selection can be done either via the pushbuttons, HyperTerminal commands or the with remote control.
In autonomous mode, the MCU monitors temperatures via the 2 LM34 temperature sensors, and determines the appropriate fan speed to spin the attached fans. Below a user configurable threshold temperature, the fans are disabled. Once the temperatures detected are above the threshold temperature, the fan speed will be ramped up linearly from not spinning to maximum fan speed at another set temperature. The fans stop spinning once the temperatures detected drop below the threshold temperature. If the temperatures continue to increase past a temperature limit, a corresponding alarm and LED is triggered, warning the user of high system temperature.
The speed of the fan can be varied with 2 methods, either by voltage regulation or PWM. With voltage regulation, the fan supply voltage is varied in the range of 7-12V. With PWM, the supply voltage is alternated between 0V and 12V with a varying duty cycle. Both methods achieve fan speed monitoring, but have their pros and cons. Voltage regulation is easy to implement and has few side effects, but since most fans only start spinning at ~7V, the minimum speed of the fan is limited to ~50% of the maximum speed. PWM has the advantage of a lower minimum speed of down to 10% of the maximum speed, as well as reduced power output and less voltage loss, but has the added complexity of requiring additional circuitry to retain the fan tachometer signal.
In manual mode, the user will have access to 2 potentiometers that vary the fan supply voltage to either fans independently. If the monitored temperatures exceed the maximum value, the alarm and corresponding LEDs are activated. In both modes, the monitored temperatures and the fan speeds(if supported) are output to the LCD for feedback. If supported, the system will also detect a locked fan rotor and activate a corresponding alarm and LED. The system parameters such as threshold/ maximum temperature and modes are user configurable via HyperTerminal. In addition, a remote control allows threshold temperature adjustments and mode switching.