Ich versuche einen inVENTer-Lüfter via PWM anzusteuern. Der Lüfter hat
einen 7-15V-Anschluss und 2 verschiedene GNDs. Je nachdem welcher GND
angeschlossen wird, läuft der Lüfter vorwärts oder rückwärts.
Ich nutze eine leicht modifizierte Variante der Schaltung aus
Beitrag "Hausbus mit RS485 / InVenter und Raumsensoren", siehe Bild. PWM_A und
PWM_B sind direkt mit PB1 und PB2 eines ATmega328PB verbunden. Timer 1
läuft in Mode 14 (Fast PWM mit ICR1 als TOP) mit Prescaler 1.
1 | if (sys.current_speed < 0) {
|
2 | OCR1B = 0;
|
3 | OCR1A = duty_cycle; // 0-100% von ICR1
|
4 | TCCR1A = _BV(COM1A1) | _BV(WGM11);
|
5 | }
|
6 | else if (sys.current_speed > 0) {
|
7 | OCR1A = 0;
|
8 | OCR1B = duty_cycle; // 0-100% von ICR1
|
9 | TCCR1A = _BV(COM1B1) | _BV(WGM11);
|
10 | }
|
Bei höherem Duty-Cycle läuft das auch wie erwartet. Wenn der Duty-Cycle
reduziert wird, läuft der Lüfter allerdings unrund und bleibt teilweise
sogar stehen. Rückwärts ist dabei wesentlich problematischer als
vorwärts. Wenn ich dieselbe mittlere Spannung als DC anlege, läuft er in
beiden Richtungen sauber. Bspw. läuft er bei 7V DC problemlos, während
er bei 15V und 50% Duty-Cycle nach kurzer Zeit stehenbleibt oder gar
nicht erst anläuft.
Ich habe schon diverse PWM-Frequenzen zwischen 1kHz und 40kHz probiert
und noch keine gefunden, bei der das Verhalten nicht auftritt.
Hat jemand Erfahrung mit solchem Verhalten oder generell Ideen was ich
noch versuchen könnte?