Below is a the schematic diagram for the Fan Controller board. Click on the
image for a larger version suitable for printing.
The core of the controller is the 16F877 PIC micro controller. This micro controller
has 8K Flash program memory, 368 bytes data memory, 256 bytes of
EEPROM memory, 8 channel 10 bit A/D converters, and up to 20MHz clock speed. I
used the 4MHz version which turned out to be sufficient.
On the top right are the temperature sensors - LM35s. The temperatures are
converted to voltages which are fed into the A/D converters.
Below that is the switching circuit for the PWM consisting of IRF510 MOSFET transistors.
MOSFETs are used as they are far more efficient in switching circuits than
bipolar transistors; they have a much higher slew rate and low on resistance.
The diodes D2,D3,D4 are choke diodes which allow induced voltages from the
inductive loads (fans are inductive loads) to be dissipated into the supply
rail. The resistors R7,R8 and R9 are for measuring current. The voltage across
these resistors are connected to the PIC's A/D converters.
Shown at the bottom of the diagram is the RS232 level converter.
Datasheets for most of the components are available in the downloads section.
||I recently had a look at the prototype board I made and noticed that their isn't a 2.6V zener reference in the circuit.
Its actually a some kind of precision variable voltage reference that I used while prototyping the circuit to get a decent reference voltage. I don't even know if you get 2.6V zeners! If you are building this circuit bear this in mind. You may want to use a different (better) voltage reference circuit. The reference voltage of 2.6V is programmed in the windows application so technically you could use any reference and make the modifications in the application.
||There is an error on the schematic regarding the voltage
reference D1. The actual implementation uses a 2.6V reference as the PIC
micro A/D converters don't work with a voltage reference less than 2.5V.
Unfortunately this reduces the accuracy of the readings as only a portion
of the 10 bit A/D range is actually used. This is an unfortunate
limitation on the PIC micro controller.
||I received an email from Dean Claxton about the IRF510
MOSFET. The IRF510 that I'm using in my design is actually not 100%
suitable due to the logic level voltages that I'm using. At 5V the MOSFET
won't be fully saturated and will only switch 1A. In most cases this will
be ample, however if you need to switch more current he recommends using
an IRL510 (I haven't verified the suitability of this component so you
will need to check it out yourselves).
||I have also received requests from some people to allow more
fans to be controlled. As you can see in the schematic it is possible to
control more than 3 fans, however all the A/D channels are used so if you
wanted to add additional fans to the system you won't be able to measure
the current usage of those fans.
The other issue is the firmware and the windows application. These will
both need to be updated to handle more fans as they are currently hard coded
for 3. If you need more fans you can make the changes yourself. I'm not
planning on making any changes in the near future. Good Luck!