Controller PC fans 3-Pin vs 4-Pin

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'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?

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

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?

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?

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.