Fiepen bei PWM-Lüfteransteuerung über Arduino

Hallo zusammen,

ich hatte mir letztens auf einem Arduino mittels mehrere Codeschnipsel eine Lüfteransteuerung für mein HDD Rack gebastelt, funktioniert prinzipiell auch ohne Probleme. Allerdings habe ich je nach verwendeter Drehzahl ein mehr oder weniger störendes Fiepen am Lüfter.
Ich vermute, das die Ursache an der Ausgaberequenz liegt (aber ich mag mich auch täuschen).

Zur Hardware:
Arduino Uno (D3 als Ausgabe-Pin)
Arctic F9 PWM PST
Spannungsversorgung vom Arduino und Lüfter kommt über dieselbe Quelle

Verwendeter Codeauszug mit dem Lüfter-relevanten Teil:

void PWMPercent25kHzBegin() {
  TCCR2A = 0;                               // TC2 Control Register A
  TCCR2B = 0;                               // TC2 Control Register B
  TIMSK2 = 0;                               // TC2 Interrupt Mask Register
  TIFR2 = 0;                                // TC2 Interrupt Flag Register
  TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20);  // OC2B cleared/set on match when up/down counting, fast PWMPercent
  TCCR2B |= (1 << WGM22) | (1 << CS21);     // prescaler 8
  OCR2A = 200;                               // TOP overflow value (Hz)
  OCR2B = 0;
}

void PWMPercentDuty(byte ocrb) {
  OCR2B = ocrb;                             // PWMPercent Width (duty)
}

void setup() {
    pinMode(3, OUTPUT);    // Pin fuer Luefter
    PWMPercent25kHzBegin();     // PWMPercent Ansteuerung anstoßen
}

void loop() {
.....
    PWM = ((Wert variiert zwischen 40 und 80)
    PWMPercentDuty(PWM);
......

Erkennt da jemand möglicherweise Probleme, was das Fiepen verursacht? Oder könnte man das anders realisieren?

Danke vorab :slight_smile:

Verwendest Du den PWM Eingang des Lüfters?
Grüße Uwe

Sorry, das hatte ich vergessen zu erwähnen..

Ja, ich nutze direkt den PWM Eingang des Lüfters

Ich habe mir hier mal ein Lüfterprogramm für Uno und Mega geschrieben und einen 31Khz PWM Tackt verwendet. Da piept nichts mehr. Da ist vieles für dich nicht rel. aber du kannst dir ja den für dich wichtigen Teil Deklaration und Setup rauskopieren.

Franz

1 Like

Super, vielen Dank für deinen Tipp. Ich werde mir das mal anschauen und bei mir testen :slight_smile:

Kurze Rückmeldung hierzu.

Habe deinen Vorschlag mal eingebaut @Franz54 und funktioniert absolut supe.
Vielen Dank nochmals :slightly_smiling_face:

Gerne.
Schönes Wochenende
Franz

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