PWM Lüfter steuern mit dem Arduino

Hallo zusammen ich bin noch realtiv unerfahren darum habe ich eine kleine Frage:

Ich habe vor 4 Lüfter zu nutzen um eine Lötabsaugung zu realisieren, jedoch möchte ich nicht das die Lüfter immer auf voller Stufe laufen.
Ich konnte dies bereits durch die Spannungsreduzierung bewerkstelligen jedoch finde ich das nicht die schönste Variante da ich PWM Lüfter habe die man eigentlich ansprechen kann soweit ich weiss.

Leider finde ich dazu im Netz nicht wirklich ein Beispiel oder Anleitung. Was mir wirklich viel bringt...

Mein Plan sehe wie folgt aus:

4 Taster mit den Funktionen:
Ein/Aus
Auswahl
Plus
Minus

Auf dem 16x2 LCD Display wird dann Visualisiert auf welcher Stufe jeder Lüfter ist oder ob er ausgeschaltet ist.

Gerne würde ich mich hier etwas einlesen, hätte mit jemand einen Tipp was genau ich studieren soll? Oder kann mir dies jemand gleich realisieren?

Das ganze würde ich am liebsten mit einem Arduino Uno machen da ich hier gleich zwei rumliegen hab, natürlich wenn von Vorteil auch mit einem anderen.

Besten Dank für Eure Tipps

Natürlich kannst du das mit dem UNO machen.
Aber du solltest dich erst mal mit den Basics beschäftigen.

Die IDE liefert dir genügend Beispiele, auch für die Nutzung von Displays, mit denen du üben kannst.
Ebenso gibt es Beispiele um Taster am Arduino zu verwenden.

Zum Einlesen empfehle ich dir ein Fachbuch für den Arduino (z.B. das Arduino Kochbuch), aber da gibt es noch viele andere.

Wenn du dann einen ersten Sketch für dein Projekt geschrieben hast und kommst mit ersten direkten Fragen, werden hier sicher viele helfen können.

Hallo,

etwas beschäftigen musste dich schon mit deinem Problem. Jedes ist speziell.

Du solltest lernen wie man Taster abfragt und diese entprellt. Und wie man ein LCD ansteuert. Damit haste schon erstmal zu tun denke ich. Danach kommt die Tasterauswahl dran und zum Schluss die PWM Steuerung.

Wenn jemand nicht weiter kommt helfen wir gern. Paar Leute hier könnten dir das bestimmt fertig liefern. Nur ist dir damit wenig geholfen. Du möchtest das ja hoffentlich lernen. Jeder fängt mal an. Das wissen wir. Keine Sorge.

Besten Dank für eure Ratschläge, zur Zeit bin ich mich wirklich am reinlesen, nur habe ich noch nicht das grosse Verständnis dafür was ich gerade realisieren will.

Ich möchte hier nicht bei meiner "Ausbildung zum Arduino Profi :grin: " mogeln ich möchte lediglich einige Tipps um dieses Projekt mit etwas mehr Hilfe zu lösen, da ich die Lötabsaugung wirklich fast schon brauche.

Besten Dank

Dodoooh:
ich möchte lediglich einige Tipps

Hast Du doch bekommen. Und schon mal in die zahlreichen mitgelieferten Beispiele der IDE geschaut? Das hilft ungemein - und das sage ich aus eigener Erfahrung!

Dodoooh:
da ich die Lötabsaugung wirklich fast schon brauche.

Dann nimm sie halt erst mal ohne PWM in Betrieb, scheint ja zu gehen.
Und wenn's schnell gehen soll mit dem arduino dann musst Du jemanden anheuern.

so richtig rund läuft es eben nicht... darum die frage hier :wink:

Dodoooh:
da ich PWM Lüfter habe

Es gibt Lüfter und Lüfter und Lüfter.
wenn es PC-Lüfter sind, dann hängt es vom Typ ab, wie die Ansteuerung aussehen muss.
Haben die Lüfter 2, 3, oder 4 Anschlusspins?

Dodoooh:
so richtig rund läuft es eben nicht... darum die frage hier :wink:

Da wir das hier in unserer Freizeit machen und wir dir natürlich gern helfen möchten, musst du schon deinen Teil dazu tun. Der besteht daraus die Grundlagen zu lernen.
Ohne diese verstehst du sicher auch nicht, wenn wir dir Tipps geben.

Du kannst jedenfalls nicht erwarten, dass einer dir deinen Sketch schreibt. Und ohne Grundlagen wird es für dich dann schon ein Problem, diesen Sketch richtig einzusetzen.

Schreibe einen Sketch mit dem du eine Led per Taster ein bzw. ausschalten kannst.
Wenn das klappt, kann man dies sicher an einen Lüfter anpassen und das auch mit PWM.

Die Grundlagen verstehe ich bereits, ich habe schon einige Projekte nachgebaut, verändert und verstanden, ich kann bereits die Spannung mit zwei Tastern regeln. Dazu benutze ich folgenden Code den ich auch verstehe, nur fehlt mir das Verständnis hier das PWM Signal einzubinden und eine Auswahl von 4 Lüftern zu machen.

/*
Arduino Tutorial 3.2 - Lüftergeschwindigkeit per Taster wechseln

by Scynd 2014

In diesem Tutorial geht es darum die Geschindigkeit eines Lüfters 
per tastendruck um einen vordefinierten Wert zu erhöhen oder zu senken.

*/


// Konstante Variablen

const int FanPin = 9; // Pin für den Lüfter
const int Taster1Pin = 2; // Pin für Taster 1
const int Taster2Pin = 3; // Pin für Taster 2

// Variablen

int Schrittweite = 20; // Variable für die Schrittweite pro Tasterdruck des PWM Wertes
int FanSpeed = 75; // PWM Startwert des Lüfters (ca.30%)
int Taster1Status = 0; // Variable zum speichern des Tasterstatus
int Taster2Status = 0; // Variable zum speichern des Tasterstatus


void setup() {

TCCR1B = TCCR1B & 0b11111000 | 0x01; // Setzt Timer1 (Pin 9 und 10) auf 31300Hz
Serial.begin(9600); // Setzt die Baudrate für die Ausgabe am Serial Monitor auf 9600
pinMode(FanPin, OUTPUT); // Setzt den Pin des Lüfters als Ausgang
pinMode(Taster1Pin, INPUT); // Setzt den Pin des Tasters 1 als Eingang
pinMode(Taster2Pin, INPUT); // Setzt den Pin des Tasters 2 als Eingang

/* Der Lüfter bekommt 1 Sekunde einen Startimpuls und wir dann gedrosselt.
Das ist eine Sicherheitsmaßnahme, falls der Lüfter mit 30% nicht anläuft 
*/
analogWrite(FanPin, 255); 
delay(1000);
analogWrite(FanPin, FanSpeed);
}


void loop() {

Taster1Status = digitalRead(Taster1Pin); // TasterPin1 lesen und Status speichern
Taster2Status = digitalRead(Taster2Pin); // TasterPin2 lesen und Status speichern

// Wenn Taster 1 gedrückt ist, um den Wert von "Schrittweite" erhöhen
if(Taster1Status == HIGH) {
FanSpeed = FanSpeed + Schrittweite;
delay(500);
}

// Wenn Taster 2 gedrückt ist, um den Wert von "Schrittweite" senken
if(Taster2Status == HIGH) {
FanSpeed = FanSpeed - Schrittweite;
delay(500);
}

// Der ausgegebene PWM Wert wird auf den Bereich 75-255 begrenzt
if(FanSpeed > 255) {
FanSpeed = 255;
}

if(FanSpeed < 75) {
FanSpeed = 75;
}

analogWrite(FanPin, FanSpeed); // Gibt den PWM Wert am FanPin aus
Serial.println(FanSpeed); // Gibt den FanSpeed Wert im Seriellen Monitor aus
}

Der Code ist übrigens von Hier

Der Lüfter hat 4 Anschlusskabel wie in diesem Foto zu sehen ist:

Besten Dank

Dodoooh:
Die Grundlagen verstehe ich bereits, ich habe schon einige Projekte nachgebaut, verändert und verstanden, ich kann bereits die Spannung mit zwei Tastern regeln. Dazu benutze ich folgenden Code den ich auch verstehe, nur fehlt mir das Verständnis hier das PWM Signal einzubinden und eine Auswahl von 4 Lüftern zu machen.

Wenn du den Code wirklich verstehst, verstehe ich deine Frage nicht.
Der Code erzeugt schon PWM.

Und wenn du Code von anderen Foren holst, warum fragst du nicht in dem Forum nach. Ebenso musst du doch gesehen haben, dass der Code für einen Lüfter mit 2 Kabeln ausgelegt ist, du verwendest aber Lüfter mit 4 Kabeln.

Hast du ein Datenblatt von dem Lüfter?
Evtl. kommt ja noch einer vorbei, der diese Lüfter kennt und weiß wie die angeschlossen und betrieben werden, ich kann es leider nicht sagen.

PC Lüfter mit 4 Pins haben eine eigene Elektronik an Bord und werden üblicherweise mit einer 25kHz PWM angesteuert, die mit dem Arduino schwierig zu erzeugen ist.

Das Datenblatt zu deinem Lüfter liegt hier: http://www.nidecpg.com/fanpdfs/va450dcf.pdf da steht allerdings nichts über die Ansteuerung drin.
Das Datenblatt für die Ansteuerung liegt hier: www.nidecamerica.com/fanpdfs/c2008_0203.pdf

Wenn ich das Datenblatt richtig interpretiere, dann kannst du den Lüfter mit einer PWM Frequenz zwischen 300Hz und 50kHz ansteuern, sollte also mit dem Arduino gehen.

Allerdings ist nicht klar, wie die interne Elektronik auf den fehlenden NTC reagiert, und mir auch nicht ganz klar, welchen Typ Lüfter du wirklich hast. Aber du könntest ja mal die Firma Nidec anschreiben, vielleicht bekommst du ein besseres Datenblatt.

Hallo,

eigene Erfahrung mit 4Pin Lüfter habe ich noch nicht. Aber Dein PWM Signal muß an den Controleingang vom Lüfter. Der Lüfter wird an seinem +/- Anschluss mit konstanten 12V versorgt. Dann sollter er eigentlich schon regelbar sein. Das Signal an Control ist 0 oder 5V. Keine 12V !!! Was der Temperaturfühler noch zusätzlich bewirkt weis ich auch nicht recht. Nur sollte der schon im Lüfter stecken. Der kommt nicht außen ran. Als Anschluss gibts nur Ub, Control, Tachosignal, Masse. Und den Pullup brauchste vielleicht noch laut Datenblatt. Weis nicht ob der schon drin ist. Widerstand messen zwischen Ub und Control Anschluss ?

Und falls der Lüfter mit 31kHz irgendwelche komischen Geräusche macht, können wir die auch noch ändern. Meine 3Pin Lüfter pfeifen wenn die PWM Frequenz denen nicht gefällt.

Und wegen dem Code. Der funktioniert zwar erstmal. Ist aber nicht brauchbar für Erweiterungen. Die Taster sind nicht entprellt, deshalb hat man je ein 500ms delay reingehauen. Ich empfehle dir die Bounce2 Libraries. Hat Bsp. drin. Dann machste dir einen Sketch wo du mit jeden Taster eine LED gezielt umschaltest. Nur mit einer kurzen definierten Entprellzeit. Siehste dann schon in den Bsp. Code.

Allerdings erzeugt die in meiner aktuellen IDE 1.6.6 Warnungen beim kompilieren. Es gibt aber noch eine ältere IDE eigene Bounce Lib die enthalten ist. IDE > Datei > Beispiele > Digital > Debounce