Pages: [1]   Go Down
Author Topic: Controller PC fans 3-Pin vs 4-Pin  (Read 1294 times)
0 Members and 1 Guest are viewing this topic.
USA
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I want to make a fan controller using Arduino. I can control the fan using PWM on the 3-Pin connectors but the problem I am having is the frequency noise coming from the fan is just a little too annoying. I am wondering exactly what drives the fans and what can I do to eliminate the noise.

I believe the 4 pin connectors have a pin assigned for the PWM signal, I just haven't experimented with it yet.

Note: I am using a mosfet IRF540N to drive the fan.

Logged

United Kingdom
Offline Offline
Tesla Member
***
Karma: 227
Posts: 6639
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Yes, the 4-pin fans have a PWM input, which can be driven from an Arduino using a small signal NPN transistor, a small signal N-channel mosfet, or even just a diode. The PWM frequency is supposed to be 25KHz, which can be generated from timer 1 or 2 on a Uno if you don't need to use the other PWM pin on the same timer for PWM.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

USA
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I've notice on the 3 pin fans, if you change the voltage you can changes the speed. is there a way I can implement that with the arduino?
Logged

USA
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I think I am going to try to use an RC Low pass filter.
Logged

USA
Offline Offline
Jr. Member
**
Karma: 0
Posts: 51
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Filter worked and change some stuff with timing worked great.
I am using the mega 2560

Instead of using the define PWM pins, I am wondering if I can use any digital pin as PWM?
Code:
int fan = 12;
int dT = 500;//uS

void setup()
{
  pinMode(fan, OUTPUT);
}
void loop()
{
  digitalWrite(fan, LOW);
  delayMicroseconds(dT);
  digitalWrite(fan, HIGH);
  delayMicroseconds(dT);
}

has anyone played around with this?
 Are there any libraries?
Can I achieve high frequencies by doing it this way or will have have issues?
Logged

United States
Offline Offline
Newbie
*
Karma: 2
Posts: 49
Yes. Thats my donkey
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't know if the topic is still live or not but making an Arduino multi-channel fan controller has already been done, it gets the temp readings from the PC's on-board temp sensors.

The post covers 2,3 and 4 wire fans as well as the differences of how to use a 3.3v vs 5v Arduino for the controller. Even RGB programmable LEDS are supported as an addon option.

If anyone is interested the post can be found at http://www.silentpcreview.com/forums/viewtopic.php?f=9&t=65801&p=571959#p571959

If you would like more of a basic howto guide I posted one on my blog.
« Last Edit: February 23, 2013, 04:10:46 am by dewy721 » Logged

Pages: [1]   Go Up
Jump to: