3.3 - Lüftergeschwindigkeit per Drehpoti einstellen
Um einen Lüfter steuern zu können, muss man seine Versorgungsspannung regulieren. Das macht man mit dem Arduino, indem man per analogWrite Befehl ein PWM Signal ausgibt. Der PWM Wert kann dabei zwischen 0 und 255 liegen, wobei 0 = 0% und 255 = 100% ist.
Bei sehr vielen gängigen Lüftersteuerungen, wird die Lüftergeschwindigkeit mit einem Drehregler eingestellt, der nichts anderes als ein Potentiometer ist.
Das macht es uns sehr leicht eine solche Steuerung mit dem Arduino nachzubauen.
Dabei wird die Stellung des Potentiometers an einem Analog Input Pin erfasst und dann das entsprechende PWM Signal an den Lüfter ausgegeben.
Der Code für 3 Pin Lüfter und 4 Pin PWM Lüfter unterscheidet sich dabei nicht, der Aufbau allerdings schon. Den 4 Pin PWM Lüfter kann man ohne zusätzliche Bauteile an eine 12V Stromversorgung und den Arduino anschließen, aber für die Ansteuerung eines 3 Pin Lüfters braucht man noch einen Transistor der über den Arduino angesteuert wird, da die Ausgänge des Arduinos nicht genügend Strom und Spannung liefern um einen Lüfter anzutreiben.
Teileliste
-
Arduino IDE (Tutorial wurde mit 1.6 erstellt)
-
Arduino Uno (oder ein anderes Modell)
-
12V Netzteil (das ist nur ein Beispiel! Bitte wählt ein ausreichend starkes Netzteil je nach benötigter Leistung)
-
alternativ 12V Computer Netzteil
-
N-Chanal Transistor/Mosfet (z.B. IRFZ44N oder IRFZ34N)
- 12V PC Lüfter (3 Pin)
- 12V PC Lüfter (4 Pin PWM)
Anschlussplan
3 Pin Lüfter
4 Pin PWM Lüfter
Code
//Konstanten const int fanPin = 9; // Lüfter an Pin 9 angeschlossen const int potiPin = A0 ; // Potenzometer am analogen Eingang Pin 0 angeschlossen const int fanMinSpeed = 75; // Niedrigste Drehzahl bei der der Lüfter anläuft (müsst ihr mit euerm Lüfter testen) // Variablen int fanSpeed = 0; // Variable für die Lüftergeschwindigkeit int potiVar = 0 ; // Variable zum speichern des Potentiometereingangs void setup() { TCCR1B = TCCR1B & 0b11111000 | 0x01; // Setzt Timer1 (Pin 9 und 10) auf 31300Hz Serial.begin(9600); // Baudrate für die Ausgabe am Seriellen Monitor pinMode(fanPin, OUTPUT) ; //Setzt den Lüfter Pin als Ausgang pinMode(potiPin, INPUT) ; //Setzt den LEDPin als Ausgang } void loop() { potiVar = analogRead(potiPin) ; // Liest das Potentiometer aus fanSpeed = map(potiVar, 51, 1023, fanMinSpeed, 255); // Verteilt den PWM Wert über den Messbereich des Potis // Unterer Potenziometerbereichs (0-50) = Lüfter aus (funktioniert nur mit 3Pin Lüftern. 4Pin Lüfter laufen auf ihrer Mindestdrehzahl) if(potiVar < 50) { fanSpeed = 0; } Serial.println(fanSpeed); // Gibt die Variable im Seriellen Monitor aus analogWrite(fanPin, fanSpeed); // Gibt die Variable mit PWM aus }
Nach dem setzen der Konstanten und Variablen, wird im setup die Frequenz des PWM Signals eingestellt, sowie die Ein- und Ausgänge deklariert.
Am Anfang des loops, lesen wir das Potentiometer am potiPin aus und speichern den Wert, der sich zwischen 0 - 1023 bewegt in der Variable potiVar ab.
Jetzt verteilen wir per map Befehl über den Bereich des Potentiometer von 51 - 1023 den PWM Wert von 75 - 255 und speichern den PWM Wert dann in der Variable fanSpeed.
Um den Lüfter auch abschalten zu können, lege ich im Bereich des Potis von 0 - 50 einen PWM Wert von 0 fest. Allerdings funktioniert das nur mit 3 Pin Lüftern. 4 Pin Lüfter laufen in der Regel durch ihre interne Elektronik auf ihrer Mindestdrehzahl weiter und lassen sich nicht abschalten.
Zum Schluss lassen wir uns den PWM Wert zu Kontrolle noch am Seriellen Monitor ausgeben und geben den Wert dann per analogWrite an den Lüfter aus.
Jetzt verteilen wir per map Befehl über den Bereich des Potentiometer von 51 - 1023 den PWM Wert von 75 - 255 und speichern den PWM Wert dann in der Variable fanSpeed.
Um den Lüfter auch abschalten zu können, lege ich im Bereich des Potis von 0 - 50 einen PWM Wert von 0 fest. Allerdings funktioniert das nur mit 3 Pin Lüftern. 4 Pin Lüfter laufen in der Regel durch ihre interne Elektronik auf ihrer Mindestdrehzahl weiter und lassen sich nicht abschalten.
Zum Schluss lassen wir uns den PWM Wert zu Kontrolle noch am Seriellen Monitor ausgeben und geben den Wert dann per analogWrite an den Lüfter aus.
Das war es auch schon
Seitennavigation
Einen Kommentar verfassen
Einloggen um Kommentare zu verfassen
Als Gast kommentieren