PWM Lüftersteuerung Mosfet ja/nein

Hallo zusammen,

Habe:

  • Arduino UNO
  • Mosfet
  • DHT11
  • Lüfter 12V mit PWM

Ich steuere die Lüfterdrehzahl über den Data- PIN am Mosfet (von Arduino UNO PIN 2). Nun habe ich gelesen, dass ich bei einem Lüfter mit PWM den Mosfet nicht benötige.
Ist es korrekt, den Data-PIN dann direkt an den Lüfter auf PWN anzuschliessen und somit würde der Mosfet entfallen?

Gruß
Falke07

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Quelle?

Welche Bauanleitung wie man einen PWM Ventilator mit Arduino steuert darf ich dir empfehlen?

Hallo,

es war eine Diskussion unter einem Youtube- Video. Dort wurde dies so dargestellt.

Zitat: Allerdings nutze ich einen Lüfter mit 4-Pin-Anschluss, so dass ich kein MOSFET benötige

Mehr habe ich nicht, deshalb die Frage im Forum.

Öööhhmmm....
Warum rechtfertigst du dich?
Sollen wir dir das glauben, oder möchtest du dich selber von der Richtigkeit deiner Argumentation überzeugen?

dann lautet die Anwort auf deine Frage ja.

Hallo,

die Frage kann man ohne den Lüfter zu kennen nicht beantworten. Es kommt darauf ob du einen 3 Pin oder 4 Pin Lüfter hast. Besser wäre deinen Lüfter zu benennen / zu verlinken.

Hallo,

die Infos über den gekauften Lüfter habe ich natürlich. Es handelt sich um folgendes Modell:

ARCTIC P12 PWM - 120 mm PWM Gehäuselüfter optimiert für statischen Druck, Case Fan, PWM-Signal reguliert Lüfterdrehzahl, 200-1800 U/min. - Weiß
(https://www.amazon.de/gp/product/B07ZZ5TWVG/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)

Hat einen 4-PIN Stecker
GND, VCC, RPM Feedback, PWN

Momentan wie gesagt, ist dort nur GND und VCC (12V) über den Mosfet angeschlossen, an welchem auch die Data- PIN (Mosfet) den Lüfter steuert.

Die Frage war, ob es geht, das:

  • Mosfet raus,
  • Lüfter direkt an 12V
  • Data-PIN (Arduino => direkt auf PWN- Pin von Lüfterstecker)

Wurde beantwortet!

Hier ist ein Schaltplan... da siehst Du, dass es auch ohne MOS-Fet geht:

PC-Luefter-Steuerung.pdf (99,6 KB)

Hat ja @combie geschrieben :wink:

Nicht vergessen -12V mit GND verbinden

Auszug aus dem oben genannten Schaltplan:

Ich verstehe jetzt nicht wieso am Tacho Ausgang ein Pullupwiderstand auf 12V sein muß, der dann mittels Spannungsteile auf 5V gebracht wird.
Ist es nicht einfacher den Pullupwiderstand auf 5V zu schalten zumal der Tachoausgang ein Open Collektor Ausgang ist?

Grüße Uwe

Hast Du recht. Die Beschaltung wurde von einem 12V System ohne den 5V Laderegler übernommen und nicht angepasst.

Was ist ein 5V Laderegler??

Wenn ich einen "Sensor" von einem 5V System eingelesen will habe ich sicher 5V zur Verfügung.

Grüße Uwe

Du hast ja mit Deinem Einwand recht. Auf was willst Du noch hinaus?
Den MCP1703 hast Du ja sicher auch gesehen ...

Daß ich nicht verstehe wieso das Tachosignal mit 12V gepulluped wird wenn sicher 5V zur Verfügung stehen wweil der Controller den ich anschließe mit 5V fuktioniert.

Grüße Uwe.

Hallo,
ich habe den Lüfter (PWN- PIN) nun direkt am Arduino auf den PIN4 und den Mosfet raus.

Nun habe ich das Problem, das alle 3 Sekunden der Lüfter anläuft, obwohl er aus sein sollte. Also bei jedem loop (delay(3000)), startet der Lüfter, was beim Anschluß über den Mosfet nicht der Fall war.

Hab ich da in der Programmierung einen Denkfehler?

void loop() {
  // Temp.- Messung
  float temp = dht.readTemperature();

  dif = temp - tempgo; // tempgo = float(25.00), temp = float(24.00)
// dif = float(-1.00) somit FanPin = LOW (also Lüfter aus)

  if (dif <= 0) { digitalWrite(FanPin,LOW); status = " AUS"; } else
  if (dif >= 5) { digitalWrite(FanPin,HIGH); status = " MAX"; }else
  if (dif >= 4 && dif < 5) { analogWrite(FanPin,200); status = "04/05"; }else
  if (dif >= 3 && dif < 4) { analogWrite(FanPin,150); status = "03/05"; }else
  if (dif >= 2 && dif < 3) { analogWrite(FanPin,100); status = "02/05"; }else
  if (dif >= 1 && dif < 2) { analogWrite(FanPin,60); status = "01/05"; }else
  if (dif > 0 && dif < 1) { analogWrite(FanPin,30); status = " MIN"; }

delay(3000);
}

Gruß
Falke07

Weiß ich nicht, da dein Programm bis zur Untestbarkeit verstümmelt ist.

Schau mal im Datenblatt des Lüfters ob dieser überhaupt stehen bleibt.
Manche haben die Funktion daß wenn gar kein Signal (weder HIGH noch LOW) kommt, zur Sicherheit der CPU der Lüfter auf max Speed geht.

Der gesamte Sketch wäre für die Fehleranalyse wärmstens erwunscht und mehr als notwendig. So kann ich nur Annamen machen.

Ich nehme mal an Du hast kein pinMode(); für den FanPin. Das braucht es eigentlich für analogWrite() nicht. Du verwendest aber digitalWrite() um das Pin 100% aus und ein zu schalten. Ich befürchte daß Du damit nur den Pullupwiderstand ein und ausschaltest und somit bei LOW das Pin Hochohmig wird und der Lüfter einen Kabelbruch dedektiert und auf Max Geschwindigkeit geht.

Lösungsvorschlag:
Wieso nimmst Du nicht analorWrite um das Pin aus und volle ein zu schalten ?
Lies die Spezifikation des Lüfter bezüglich verhalten bei Signalfehler durch.

Grüße Uwe