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