Computer Fan Controller

Well, I have a circuit in one PC (that is connected 24 hours) to turn On/Off the fans, it consists of a program in VB that active the pins on the parallel port which in turn have a circuit with a relay and turns on or off the fans automatically, depending on the temperature (verified by SpeedFan).

The system is good and generates reports and send me by email as often as the circuit turns on, but now there are few motherboards with LPT and I have to adapt this circuit to a USB port, after testing each component i am ready to make a single circuit where I'll have this:

This all together will serve to:

  • Automatically control all the pc case fans as the temperature received from the sensor
  • View real-time temperature sensor in the 7-segment display
  • Adjust the temperature to which the fans are going to run 100% (by software)
  • Various information on the LCD 16x2
  • etc.

The overall objective is to control groups of fans automatically (depending on temperature), segment displays will show the current temperature and use the LCD 16x2 to provide general information of the PC (via the LCD Smartie).

Update: Some photos, just to show the current appearance of the main box:

:slight_smile: the circuit to put in this box:

I need only to solder some wires and put everything in the box that I made of acrylic (to a pc bay 5.25).

To recap:

  • When you start it makes a component diagnostic
  • In the 1st boot waits 5 seconds ("Boot Waiting") if you want to connect to the PC software that I did in VB, otherwise continues
  • 2 buttons, one to start the configuration mode where you can Disable / Enable the various components [Fans, Displays, LCD, Buzzer]. One button selects the mode and the other one changes the state

Software I developed to communicate with the hardware (Arduino):

  • Establishes and test the connection to the Arduino
  • We Get the values (PWM) stored in memory of the Arduino (11 values PWM that are associated with another 11 temperatures values), I have two groups of Fans (each with 4 or more fans)
  • We can get the current temperature from sensor
  • On / Off the buzzer and set a max. temperature for which he will beep if it is achieved
  • Set the interval in seconds (which then converts to milliseconds) that it be use to read the temperature from sensor (on the Arduino)

Application frontend :

V├ŹDEO 10.09.2010 / Semi-Final: Fan Controller - Arduino - YouTube

Menus are in Portuguese :slight_smile:

Now in a PC Case:


Man, that is a cool project!!

I also like working with acrylic. Do you glue it using super glue?

Thanks, I used a special glue for acrylic that I bought at the same store acrylics and applies
with a syringe :wink:

I was thinking of a variable speed project for temp controlled pc fans.

have you tried doing pwm (using proper buffering) to the pc fans to slow them down gradually?

THAT would be a good upgrade :wink:

Hello, i do not understand your idea ..

In my project the fans get the PWM value depending on temperature and depending the values defined by the user (software). Everything is automatic and gradually

I guess since I don't see a schematic (did I miss it?) I can't see how the fan speed is varied.

as I understand it, pwm on the arduino is something like 400hz. fans on pc's want to be WAY above audio range.

I was thinking of using a dedicated pwm chip that sits at 30khz (or somethin high like that) and having it do the pwm work.

there is also the issue of how to start the fans and make sure they don't stall if you use too low a duty cycle.

details like that are what I'm interested in.

Hello, I made some schemes only to not get lost:

The "bug", that does not start the fans when the PWM value is very low, it is true! But its something that does not affect the objective of this project.

I was thinking of doing that!! wow nice job! i am stunned! :o

:wink: thanks