Custom PC Watercooling and Fan control system. Fan control help?

I'll get to the question shorty, however, some information on the project for better context.

I have a custom water loop in my PC. I want to control this using a system that will automatically shutdown the computer in case of failure. To do this, I am going to be routing the power switch of the computer to the Arduino Uno that is the heart of this project and then controlling the PC's power from the Arduino. There will be several sensors to determine the condition of the PC.

For now, this only includes 6 DS18B20 One Wire digital temperature sensors and the fan speed analog inputs from the PC fans and pump. Eventually I'll be adding another DS18B20 in a waterproof jacket or something similar to test the water temperature (suggestions?), and a flow meter of some sort (also up for suggestions). The temperatures and fan speeds will be displayed on a 16x2 LCD. The bulk of the electronics are to be housed in a 5.25 bay so that the screen can be seen when on the front of the case. Buttons will allow me to cycle through different display modes and fan settings.

My current problem is knowing the best way to control the 7 and maybe more fans that I will be controlling. This fans are currently set in 5 groups or channels based on location and purpose in the case so. I want to be able to set them manually and also set them programmatically. So I was thinking that the best way to do that would be to have a slide pot for manual input, then have digital pots sending a signal to a mosfet to then be the control on the 12V line to drive the PC fans. However, I do not know if this would be the best way to do this and if so, I cant figure out what mosfet to use for this.

The mosfet I'm currently looking at is the FQP27P06 I found at SparkFun. I plan on using one of these for EACH of the 5 "channels" the fans will be on allowing 5 separate digital pots to control each channel separately.

This is a very complex first main project, I understand, but it is something that I plan on seeing through to the end. I do have a moderately limited budget so if there are some people with good ideas on ways to save money, that would be great. I will gladly answer any questions on the project that people have. Also, I prefer to buy all my parts in basically one go. I know this probably is not the best practice, but with limited budget, shipping costs become a pain.

EDITS:

This project is designed to be completely redundant as it currently stands. The eventual goal is to be able to modify the code and project quickly and easily to accommodate a mining rig a friend of mine is building or any sort of computer be it server, gaming, lightweight, mining, etc. Yes, everything that this does is something that could be done with software running on the computer, but this is able to interface more easily with other projects such as home automation or remote access or the like.

EDITS 2: Final Question:
I guess my final question is what do MOSFET should I use? I found the FQP27P06 seems to match what I need. I could then just pop the gate onto a PWM output the source onto a +12V line and the drain to the positive lead of the fan. Am I correct? And with this, do I need a diode to protect anything from back voltage?

Some additional information:

Case is a NZXT Phantom original. http://www.nzxt.com/product/detail/34-phantom I plan on re-purposing the space currently used by the built in fan controller.

Pump is a EK DCP 2.2 12V pump. EK-DCP 2.2 (12V DC Pump) – EK Webshop

Fans are Corsair Air Series fans. CORSAIR Site Maintenance

Just to validate your overall approach, has your CPU got a temperature sensor, and have you considered using this to trigger the system shutdown? I think you'll find that is quite a common approach, and makes it possible (using the freely available software) to adjust the PC power levels and fan speed and (if necessary) perform an orderly shutdown rather than just crashing the PC.

I have considered this, however, this also allows me to have more finite control over it. I also want this to be completely independent of the OS so I can feel free to use whatever OS I want to and recreate the project for my other PCs. This will eventually be expanded to function on a headless litecoin mining rig I am working on with a friend. Also, at least in Windows and the Linux distros I use all include an option for what to do when the power button is pressed. This would let me mimic a button press to initiate the standard shutdown if the temperature reaches a certain point. If the PC fails to shutdown after a certain amount of time and the temperature continues to rise, that is the point that I will have it effectively "press and hold" the power to hard shutdown.

This is, in many ways, intended to be overly engineered just to ensure that my precious PC doesn't get damaged.

My current problem is knowing the best way to control the 7 and maybe more fans that I will be controlling. This fans are currently set in 5 groups or channels based on location and purpose in the case so. I want to be able to set them manually and also set them programmatically.

I question the need to control the fans independently... i.e. It wouldn't make sense to have some fans running full-speed and others off.

So I was thinking that the best way to do that would be to have a slide pot for manual input

That would be OK. But it's mechanically easier to drill a round hole and mount a rotary pot. Another option would be to have buttons for "faster" and "slower". And, with an LCD you have the option of "soft buttons" where a button can have one or more functions, controlled by software.

then have digital pots sending a signal to a mosfet to then be the control on the 12V line to drive the PC fans.

It's better to use PWM to a MOSFET. You wouldn't need the digital pots and you already have PWM outputs. Linearly controlling the voltage/speed with a pot (or digital pot) is inefficient and it requires the MOSFET to dissipate heat.

Also, I prefer to buy all my parts in basically one go. I know this probably is not the best practice, but with limited budget, shipping costs become a pain.

It's not "bad practice", and I usually like to buy a few extra parts in case something "goes wrong". But realistically, you'll probably end-up placing at least one more order before the project is done.

This is, in many ways, intended to be overly engineered just to ensure that my precious PC doesn't get damaged.

I've never seen a PC physically damaged from "normal" overheating. If something literally burns-up, it's normally damaged before you get smoke & black-dead components.

I haven't had a CPU overheat in a long time... When it did happen (due to a "frozen" CPU fan) the CPU would slow-down to a crawl to protect itself and there was no permanent damage. I believe Intel & AMD processors both have over-temperature protection built-in.

My current problem is knowing the best way to control the 7 and maybe more fans that I will be controlling. This fans are currently set in 5 groups or channels based on location and purpose in the case so. I want to be able to set them manually and also set them programmatically.

I question the need to control the fans independently... i.e. It wouldn't make sense to have some fans running full-speed and others off.

I want to control the speed of the fans individually because I don't need them running full speed during about 8 months of the year where the temperatures are very pleasant where I live. However, during the summer months, even with the air-conditioner running, it can get very hot. The fans, despite being very quiet fans, get really loud when blowing through the radiator. These are the two fans that I need the most granular control over anyway, but there are times I need to control the others too.

So I was thinking that the best way to do that would be to have a slide pot for manual input

That would be OK. But it's mechanically easier to drill a round hole and mount a rotary pot. Another option would be to have buttons for "faster" and "slower". And, with an LCD you have the option of "soft buttons" where a button can have one or more functions, controlled by software.

Reason for slidepot is the location that the "quick control" would be which is in the included picture with SD card for scale.

It's better to use PWM to a MOSFET. You wouldn't need the digital pots and you already have PWM outputs. Linearly controlling the voltage/speed with a pot (or digital pot) is inefficient and it requires the MOSFET to dissipate heat.

This is because MOSFETs switching speed is very quick and allowing them be be fully open ensures low heat created/dissipated, correct? And here was another one of my questions... PWM on these fans will work despite the fact that they aren't "PWM compatible" PC fans? They just have the 3 pins VCC, GRD, and the sensor which I believe gives a square wave with a peak at each full revolution.

If PWM works, then that makes the project much easier as a PWM to a MOSFET would be much to implement as well as much cheaper.

Someone else on the forum ordered DS18B20's in a waterproof sleeve.

DVDdoug:

This is, in many ways, intended to be overly engineered just to ensure that my precious PC doesn't get damaged.

I've never seen a PC physically damaged from "normal" overheating. If something literally burns-up, it's normally damaged before you get smoke & black-dead components.

I haven't had a CPU overheat in a long time... When it did happen (due to a "frozen" CPU fan) the CPU would slow-down to a crawl to protect itself and there was no permanent damage. I believe Intel & AMD processors both have over-temperature protection built-in.

In a mining rig the temperatures have to be pretty constant in order to maintain predictable ans stable mining hashes. The PC I'm building this for is my main PC at the moment, but is going to be the test bed for this design so I dont hinder the hash rate of the mining rig once its up and running. On the R-series GPUs from AMD that we're gonna be mining with, a couple degrees can mean quite a bit of monetary loss in the long run because of the automatic overclock that they have built in.

But for now I'm building this on my main gaming/work rig so that I get the kinks worked out on something that isnt really making me money.

From your references to 'monetary loss', are you thinking that you're actually going to make any money out of coin mining? I think you'll find that boat has sailed long ago.

You should be able to PWM control ordinary brushed PC fans, and you can use one or more DS18B20 temperature sensors and potentiometer inputs to control the fan speeds using whatever algorithm you want, and you can drive a relay to operate a relay which shorts across the 'power' button if you want. I'm surprised that any of this is necessary, though. It's been years since I bought a PC without automatic CPU temperature sensing and fan control, and I think you're reinventing the wheel. But what you're describing is not very complicated, if you decide that's what you want to do.

PeterH:
From your references to 'monetary loss', are you thinking that you're actually going to make any money out of coin mining? I think you'll find that boat has sailed long ago.

You should be able to PWM control ordinary brushed PC fans, and you can use one or more DS18B20 temperature sensors and potentiometer inputs to control the fan speeds using whatever algorithm you want, and you can drive a relay to operate a relay which shorts across the 'power' button if you want. I'm surprised that any of this is necessary, though. It's been years since I bought a PC without automatic CPU temperature sensing and fan control, and I think you're reinventing the wheel. But what you're describing is not very complicated, if you decide that's what you want to do.

It wont be profitable to him since he's fronting the bulk of the cash, but he's already gotten ~100 bucks from running if for a weekend with half the intended cards. At least thats what he claims. I havent looked into it much but I know its litecoin he's mining and that litecoin is asic resistant. So it may be viable if he got the cards cheap enough. But since I'm just building the system and housing it once its finished, I dont really mind pulling a percentage for basically nothing.

The concern with using the computer to control the fans is when this project does get ported to the mining rig, there wont be enough fan headers on the motherboard and he wants to be able to remotely check the temperature and control the fans. I'm building this for the fun of it, the experience, and the fact that I get a percentage of anything the rig mines when that time comes. The remote control is something I'm going to be implementing later.

As for the fans, I just wanted to be absolutely sure that they could be controlled via PWM pin.

I guess my final question is what do MOSFET should I use? I found the FQP27P06 seems to match what I need. I could then just pop the gate onto a PWM output the source onto a +12V line and the drain to the positive lead of the fan. Am I correct? And with this, do I need a diode to protect anything from back voltage?

Take a look at this one.

RFP30N06LE.pdf (189 KB)

Sparkfun states that FQP30N06L is interchangeable with RFP30N06LE. Just ensuring this is true. They seem to be functionally identical for my purposes as far as I can tell, but so does FQP27P06. I know that FQP30N06L and RFP30N06LE are N-Channel MOSFETs and the other one is a P-Channel MOSFET. how does this affect my project or does it?

An N-channel would be turned on by a +5V signal applied to the Gate, wheres a P-Channel would remain OFF with a 5V signal but would turn ON with a 0V signal to so you would probably need to get a small signal transistor like and NPN 2n2222 or 2n3904 and connect the collector to the Gate with a 4.7k ohm pullup resistor to +5V and connect the emitter of the small transistor to GND. Connect a 1k ohm resistor from the arduino digital output pin to the base of the small transistor. When the output goes HIGH it will turn ON the small transistor shorting the P-CHANNEL MOSFET Gate to ground turning it on. Using a PWM OUTPUT pin you could turn it on gradually by applying a gradually increasing signal to the small transistor .(you might need to replace the base resistor with a 10k ohm for that method). As the voltage increases on the base of the small transistor the voltage on the Gate of the Mosfet gets lower and lower , eventually turning it ON in small steps. I have not tried this so I don't know how well it will work. The only thing I can say for sure is that it would not damage the mosfet. How effective the stepping is I couldn't tell you.

So sticking with one of those N-Channel ones would be better then for the sake of simplicity.

That would be my choice.