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

 
 
 
 

Anschlussplan

 

3 Pin Lüfter

anschluss 3.3 3pin     schaltplan 3.3 3pin
 
 
 
 4 Pin PWM Lüfter
 
 anschluss 3.3 4pin     schaltplan 3.3 4pin neu
 
 
 
 

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.
 
 
Das war es auch schon  fertig
 
 
 
 
        downloadbutton arduino
 
 
 
 

Seitennavigation
 
arrow button prev               arrow button up               arrow button next

Einen Kommentar verfassen

Als Gast kommentieren

0
  • Keine Kommentare gefunden