Pages: [1]   Go Down
Author Topic: Starting out on a project  (Read 964 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hey everyone,

I'm beginning my first project with an Arduino and it seems to be a doozy.

We are cooling an over-clocked CPU with liquid nitrogen and using a Duemilanove as the cooling system controller. The simplest way to monitor the temperature without cracking into the BIOS is to read the digital PWM signal(~500mV square wave) that is currently controlling the fan mounted to the CPU heat sink. Depending on the change of duty cycle sent to the fan, we will deliver more N2. We are looking at a servo controlled valve(ball or butterfly). I've read through the Playground but am having difficulty finding out how to have the input reading and the output control communicate with each other.

Are there any good resources or existing threads for a beginning programmer to use in a project like this? Also, any other advice is greatly welcome.

Thanks in advance.
« Last Edit: April 27, 2011, 08:23:31 pm by cstucks » Logged

Red Sea, Saudi Arabia
Offline Offline
God Member
*****
Karma: 12
Posts: 579
..On The Red Sea
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,
Look at PulseIn to measure the fan. Think about using an optocoupler to pick off that signal..

Servo library to control a servo for the valve...

Your smarts to decide the control function. You probably want some delay / smoothing, or to be really , um, cool, google "Arduino PID" .

Logged

Regards, Terry King  ..On the Red Sea at KAUST.edu.sa
terry@yourduino.com  LEARN! DO! (Arduino Boards, Sensors, Parts @ http://yourduino.com

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 360
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

PulseIn may be unreliable for such low voltages (500mV square waves won't be detected by the Arduino's internal Schmitt trigger). You'll probably need to add a transistor in to boost the voltage to a 5v square wave.  If you can use an oscilloscope to characterize the waveform, you could probably design a simple RC filter to convert it to an analog voltage and read it with the ADC on the Arduino - this will produce a much more stable reading than PulseIn.

Take a look at this link for a basic understanding of PWM -> analog
Logged

Red Sea, Saudi Arabia
Offline Offline
God Member
*****
Karma: 12
Posts: 579
..On The Red Sea
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

... PulseIn may be unreliable for such low voltages (500mV square waves won't be detected by the Arduino's internal Schmitt trigger).

I thought these fans had a logic level (3.3 or 5 V) signal to them?? Or is this on the motherboard??

Either way, I'd use an optocoupler  (AKA optoisolator) between the computer system board and Arduino...
Logged

Regards, Terry King  ..On the Red Sea at KAUST.edu.sa
terry@yourduino.com  LEARN! DO! (Arduino Boards, Sensors, Parts @ http://yourduino.com

0
Offline Offline
Sr. Member
****
Karma: 0
Posts: 360
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I agree that an optocoupler is a good idea. 

[...] read the digital PWM signal(~500mV square wave) [...]

OP said 500mV - I presume this is empirically derived.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks everyone, this has been a lot of help.

I thought these fans had a logic level (3.3 or 5 V) signal to them?? Or is this on the motherboard??
The fan takes constant power of 3.3V, but has an integrated circuit reading the PWM(500mV signal) as a duty cycle of sorts for the "drive" vs "coast" of the blades. Increasing the period, increases the "driving".
Logged

CO, USA
Offline Offline
God Member
*****
Karma: 5
Posts: 711
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I'm not completely grokking using liquid nitrogen, when you're still using a an air-cooled heatsink with a fan. I guess I'm picturing LN2 being used in a manner similar to water cooling. I suppose you could be just cooling the internal case air so as to then more thoroughly cool the heatsink itself.

But I wonder if using something like an LM35 wouldn't be easier than trying to pick up fan control PWM. Really, you're inferring more/less coolant flow based on the PWM frequency, so I think you can just as well make the same infererence by measuring the heatsink temperature. A bit of experimentation should get you temps to use for when to increase/decrease your flow. You can get the LM35 in a TO-46 metal case for good coupling to your heatsink. No, it won't be your CPU core temp, but I'm guessing it'll follow it closely enough for you to set your flow rate.
Logged

... it is poor civic hygiene to install technologies that could someday
facilitate a police state. -- Bruce Schneier

Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... You can get the LM35 in a TO-46 metal case for good coupling to your heatsink. ...

I don't believe that this is a viable option as the LM35 has a minimum operating temperature of -40C. What happens if the temperature drops below -40? Does it continue to read -40, or does it create an error message somehow?
Logged

CO, USA
Offline Offline
God Member
*****
Karma: 5
Posts: 711
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

... You can get the LM35 in a TO-46 metal case for good coupling to your heatsink. ...

I don't believe that this is a viable option as the LM35 has a minimum operating temperature of -40C. What happens if the temperature drops below -40? Does it continue to read -40, or does it create an error message somehow?

Well, it'd help to know what the operating temperature range is. My assumption is that if they're reading the heatsink fan RPM, as driven from a motherboard header based on what the BIOS thinks the CPU temp is, then -40C isn't going to be an issue. I also assume attaching the sensor to the heatsink as close to the CPU as possible. But I admit those are assumptions. smiley

ETA: Actually, going by the OP:
Quote
... that is currently controlling the fan mounted to the CPU heat sink.
That implies air inside the computer case. Unless he's (she?) using something like a very dry inert gas (which I think would be a poor thermal transfer medium). But let's talk about air. Cooling the interior of the case with LN2 is going to result in condensation and then frost on the motherboard and components. Maybe that's not an issue. Again, more info needed. (See also Computer Cooling: Liquid Nitrogen.)
« Last Edit: April 27, 2011, 09:52:58 pm by justjed » Logged

... it is poor civic hygiene to install technologies that could someday
facilitate a police state. -- Bruce Schneier

Red Sea, Saudi Arabia
Offline Offline
God Member
*****
Karma: 12
Posts: 579
..On The Red Sea
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

... You can get the LM35 in a TO-46 metal case for good coupling to your heatsink. ...

I don't believe that this is a viable option as the LM35 has a minimum operating temperature of -40C. What happens if the temperature drops below -40? Does it continue to read -40, or does it create an error message somehow?

Wait, are you saying the HEATSINK temperature could be -40C ??? 
Logged

Regards, Terry King  ..On the Red Sea at KAUST.edu.sa
terry@yourduino.com  LEARN! DO! (Arduino Boards, Sensors, Parts @ http://yourduino.com

Pages: [1]   Go Up
Jump to: