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).
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)
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
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.