Controlling Noctua 12v Fan

I'm trying to create an Windsim setup with een Arduino Uno and Two Noctua 12v fans. Based on this video / tutorial:

That tutorial shows this setup /pin layout.

I can't get that fans running, I tested the fans by testing them in my PC, and then the fans are running. The 12v power supply is 100% ok, I've tested that with a multimeter.

I tested the Arduino and the PWM ports, by using a LED and let them fade in and fade out. That works oke.

int ledPin = 11;
 
// Voer uit bij de start van programma
void setup() {
     // Initialiseer digitale pin ledPin als een uitvoer
     pinMode(ledPin, OUTPUT);
}


void loop() 
{
  // Fade in
  for(int ledVal = 0; ledVal <= 255; ledVal +=1) {
    analogWrite(ledPin, ledVal);
    delay(15);
  }  

  // Fade uit
  for(int ledVal = 255; ledVal >= 0; ledVal -=1) {
    analogWrite(ledPin, ledVal);
    delay(15);
  } 
     
  // Pauzeer voor 1 seconde
  delay(1000);
}

After this I tried again with the Noctua fans. But the fans keep turned off. I used this script

int fan_control_pin = 9;


void setup()
{
  pinMode( fan_control_pin, OUTPUT);
  analogWrite(fan_control_pin, 0);
}


void loop()
{
  // Just an example:
  for(int pwm = 0; pwm <= 255; pwm +=51) {
    analogWrite(fan_control_pin, pwm);
    delay(5000);
}

After this I tried with a script for 25k Hz frequenty that's used by the Noctua fans. But still the same result, the fans stays off.

//PWM output @ 25 kHz, only on pins 9 and 10.
// Output value should be between 0 and 320, inclusive.
void analogWrite25k(int pin, int value)
{
  switch (pin)
  {
    case 9:
      OCR1A = value;
      break;
      
    case 10:
      OCR1B = value;
      break;
      
    default: // no other pin will work
      break;
  }
}


void setup()   // Configure Timer 1 for PWM @ 25 kHz.
{
  TCCR1A = 0; // undo the configuration done by...
  TCCR1B = 0; // ...the Arduino core library
  TCNT1 = 0; // reset timer
  TCCR1A = _BV(COM1A1) // non-inverted PWM on ch. A
           | _BV(COM1B1) // same on ch; B
           | _BV(WGM11); // mode 10: ph. correct PWM, TOP = ICR1
  TCCR1B = _BV(WGM13) // ditto
           | _BV(CS10); // prescaler = 1
  ICR1 = 320; // TOP = 320
  // Set the PWM pins as output.
  pinMode( 9, OUTPUT);
  pinMode(10, OUTPUT);
}


void loop()
{
  // Just an example:
  for(int ledVal = 0; ledVal <= 320; ledVal +=10) {
    analogWrite25k(ledPin, ledVal);
    delay(250);
  }  


  // Fade uit
  for(int ledVal = 320; ledVal >= 0; ledVal -=10) {
    analogWrite25k(ledPin, ledVal);
    delay(250);
  } 

  for (;;) ; // infinite loop
}

Does anyone any idea what my problem could be?

Looking at your frizzy it appears it should work however I know nothing about the fans and their requirements so at this point I will not say you have it connected properly. Posting links to the technical information on the hardware would help us help you.

1 Like

Ah sorry, I am using fans of type: NF-A14 industrial PPC-3000 PWM
https://noctua.at/en/nf-a14-industrialppc-3000-pwm

Disconnect the fan from the Arduino.
A 4-pin fan should work with just power and ground connected.
The PWM wire is there to reduce fan speed.
Leo..

This should be removed it has nothing to do about Arduino or anything related to them.

I already had flagged it as spam.

I did not see that but a short time later the flagged message came up when I refreshed. Thanks!

Sorry, to looks you guys where right. That this isn't a Arduino issue, but something with the electronics. Sorry for that. Hopefully you guys can/will still help me to find the problem.

This morning is tried to connect the 12v positive and ground directly to the 12v, without a PWM or RPM connector attached, and also no Arduino. The fan still does not turn on. To be 100% sure, after that I attached the fan again to my PC and the turnen on immediately. So fan is 100% ok.

I measured the 12v power adapter with a multimeter and I got 12v between both wires. Specs about the power adapter:
Input 100-240v AC 50/60Hz 0.6A
Output 12V DC 2.0 A.

Try this simple sketch.
It creates a 25kHz 50% PWM signal on pin5.
The fan should run at low speed.
Leo..

void setup() {
tone(5, 25000);
}
void loop() {
}

Post a picture of the setup if it doesn't work.

Perhaps more testing of the PSU is needed.

With the LEDs connected to the Arduino, not the fans, and the Arduino powered by 12V through Vin or barrel socket, not USB, does the Arduino run OK?

Today my new PSU arrived. Attached the two power lines to the fan and the fan turned on directly. Damm.....So happy :slight_smile:

After that I tried my PWM testscript and attached pin 9 to PWM fan, and the fan start fading in and out.

Still didn't know what was wrong with the previous PSU, because my meter gives 12v.

Thanks for helping me.

With no load. Maybe the voltage drops rapidly as more current is supplied.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.