2x12v Lüfter per PWM steuern

Hallo,

Mein Netzteil: 24V 4.5A Lüfter: Betriebsspannung 12 V-, Stromaufnahme 150 mA Ich würde 2 davon in Reihe schalten sollte ja genau hinkommen. Sollte da noch nen kleiner Widerstand zur vor oder wäre das quatsch?

Von meinem letzten Projekt (LEDs per PWM steuern) habe ich noch nen Transistor übrig, den BC 337-40 Transistor NPN TO-92 45V 0,5A 0,625W. Sollte doch damit hinhauen oder? Das ganze würde ich dann mit nem Widerstand absichern, klappt das mit nem 4.7kOHm zwischen ArduinoDigOut und dem Transistor?

Freu mich über ne kurze Bestätigung bevor ich bastel;)

Wenns 2 geleiche Lüfter sind kannst Du sie in Reihe für 24V schalten. Kein Vorwiderstand. PW-Modulation geht auch; Programmiere aber die Steuerung so, daß die ersten 5 Sekunden die volle Spannung auf den Lüftern liegt (PWM 100%), damit sie sicher anlaufen. 4,7kOhm ist etwas knapp, es besteht Gefahr, daß der Transistor nicht in Sättigung kommt und darum in Proportionalbereich bleibt und überhitzt. Besser 2,2kOhm oder 1kOhm. Grüße Uwe

Prima, danke. Dann nehm ich 2,2 kOhm wie bei den leds auch, da läufts prima.

Kurze Frage: bei Lüftern kann ich + und - zuweisen wie ich mag oder? Sprich damit bestimme ich die Strömungsrichtung? Bin grad am löten, aber nicht am Netzteil Gruß

bei Lüftern kann ich + und - zuweisen wie ich mag oder? Sprich damit bestimme ich die Strömungsrichtung?

Eigentlich nicht. Die modernen Lüfter verfügen über eine eigene Elektronik, die das Drehfeld für den Rotor erzeugt. Das was du dir denkst, ist lediglich mit ordinären Geleichstrommororen zu fabrizieren.

Schau die den Lüfter genau an. Ist dort eine Platine mit Bauteilen in der Nähe des Motors ? - Dann ist Umpolen unmöglich. (einfach ausgedrückt ;) ) Die meisten typischen Lüfter in PC's sind heute so gebaut. Vor 20 Jahren war das noch anders ;)

bei Lüftern kann ich + und - zuweisen wie ich mag oder?

Si puede si puede (spanisch; Natürlich kannst Du, alles kann man machen) aber wenn Du die Lüfter falsch polst gehen sie kaputt. ;) ;)

Grüße Uwe

Moin, ja hab das gestern noch mal getestet und geht nur in eine Richtung. Hatte ich irgendwie falsch in Erinnerung. Gruß

Hallo bevor ich was neues aufmache schreib ich mal hier rein…

Ich habe zwei Lüfter mit einem PWM-Eingang über den ich sie steuern möchte. Das Signal erzeuge ich mit einem Ardurino Duemilanove (ATMega328). Da ich für die beiden Lüfter verschiedene Drehzahlen haben möchte und somit verschiedene “duty-cycle” habe ich einen PWM Ausgang auf PIN 3 den anderen auf PIN 9 gelegt. Bei PIN 3 bekomme ich auch ein Signal und es funzt so wie ich mir das vorgestellt habe, nur bei PIN 9 funktioniert es nicht.

...
...
int controlPin1 = 3;                             // Pin 3 für Lüfter 1
int controlPin2 = 9;                             // Pin 5 für Lüfter 2
...
...


void setup() { 
 
  Serial.begin(9600);
//<----------------------------------- PWM - Pin 3
  TCCR2A = 0x23;
  TCCR2B = 0x09; 
  OCR2A = 99;  
  pinMode(controlPin1, OUTPUT);
  OCR2B = 0;       // 
//<----------------------------------- PWM - Pin 9
  TCCR1A = 0x23;
  TCCR1B = 0x09;  
  OCR1A = 99;  
  pinMode(controlPin2, OUTPUT);
  OCR1B = 0;       
 //<------------------------------------          
...
...
...
duty_cycle1 = OCR2A * van_input[van_sig1]/100;
OCR2B = duty_cycle1;
//<----------------- Ventilator 2
duty_cycle2 = OCR1A * van_input[van_sig2]/100;
OCR1B = duty_cycle2;

Kann mir einer bitte sagen wo der Fehler liegt ? Wäre es denn ausserdem möglich gleichzeitig auf Pin 11 ein PWM-Signal zu erzeugen mit einem anderen duty-cycle als auf PIN 3, Frequenz (20kHz) bliebe die selbe ?

Vielen Dank schon einmal
Etha

Welche anderen Bibilotheken / timer benutzt Du noch? Grüße Uwe

Als libary hab ich nur noch die LCD4Bit_mod.h für das Display aufgeführt. Timer verwende ich sonst keine mehr.

Gruß Etha

Habe die Vermutung dass es mit dem LCD KeyPadShield zu tun habe.
Ich habe es mal mit einem einfachen Code getestet. Sobald ich die lcd.printIn(…) wieder einfüge funktioniert es nicht mehr ist es ausgeblendet läuft es wunderbar.

#include <LCD4Bit_mod.h> //create object to control an LCD.  
LCD4Bit_mod lcd = LCD4Bit_mod(2); //number of lines in display=1
int controlPin = 5;
void setup()
{

lcd.init();
  lcd.clear();
 
  Serial.begin(9600);
  TCCR0A = 0x23;
  TCCR0B = 0x09;  // select clock
  OCR0A = 99;  // aiming for 25kHz

  OCR0B = 0;  // set the PWM duty cycle

  TCCR2A = 0x23;
  TCCR2B = 0x09;  // select clock
  OCR2A = 99;  // aiming for 25kHz

  OCR2B = 0;  // set the PWM duty cycle
  pinMode(5, OUTPUT);  // enable the PWM output (you now have a PWM signal on digital pin 3)
  pinMode(3, OUTPUT);  // enable the PWM output (you now have a PWM signal on digital pin 5)
 
}

void loop()
{
  //lcd.printIn("test1");
  OCR0B = 80;
 
  delay(600000);
  
    OCR2B =50;
//    lcd.printIn("test2");
    delay(600000);
}

aha, da haben wir den Übeltäter. Grüße Uwe

The DFRobot LCD Keypad Shield for Arduino includes a 2x16 LCD display and 6 momentary push buttons. Pins 4, 5, 6, 7, 8, 9 and 10 are used to interface with the LCD. Analog Pin 0 is used to read the pushbuttons. The shield operates at 5V

Schön dass das Ding die ganzen PWM Ausgänge frisst....