Temperatur-kontrollierter Ventilator

Ein kleiner PC-Lüfter soll abhängig von der Temperatur an- und ausgeschaltet werden. Zur Ermittlung der Temperatur wird ein Thermistor und zur Steuerung ein Arduino Uno verwendet.

Video: Live-Demonstration

Verwendete Bauteile

Aufbau

In der Schaltung ist zu beachten, dass der Lüfter eine separate (höhere) Stromversorgung bekommt, als der Rest der Steuerungslogik. Durch einen Transistor wird der Stromfluss für den Lüfter geregelt.

Aufbau der Schaltung
Abb.: Aufbau der Schaltung

Sketches

Der erste Versuch dient nur als Test und soll den Lüfter alle 5 Sekunden ein- und ausschalten:

#define PIN_FAN 10

void setup()
{
    pinMode(PIN_FAN, OUTPUT);
}

void loop()
{
    digitalWrite(PIN_FAN, HIGH);
    delay(5000);
    digitalWrite(PIN_FAN, LOW);
    delay(5000);
}

Der zweite Sketch ist die temperaturanhängige Steuerung. Es wird in bestimmten Zeit-Intervallen die Wärme durch den Thermistor gemessen und bei einer bestimmten Schwelle der Lüfter ein- bzw. wieder ausgeschaltet. In der seriellen Konsole kann dies zusätzlich überwacht werden.

#define PIN_FAN        10
#define PIN_THERMISTOR A0

#define TEMP_FAN_OFF 440
#define TEMP_FAN_ON  500
#define MEASURE_RESOLUTION 3000 // interval in milliseconds

unsigned long lastMeasureTime = 0;
int tempValue = 0;
bool fanStatus = false;

void setup()
{
    pinMode(PIN_FAN, OUTPUT);
    pinMode(PIN_THERMISTOR, INPUT);

    Serial.begin(9600);
}

void loop()
{
    if ((millis() - lastMeasureTime) > MEASURE_RESOLUTION) {
        tempValue = analogRead(PIN_THERMISTOR);
        Serial.println(tempValue);

        if (tempValue > TEMP_FAN_ON && fanStatus == false) {
            Serial.println("Fan: ON");
            digitalWrite(PIN_FAN, HIGH);
            fanStatus = true;
        } else if (tempValue < TEMP_FAN_OFF && fanStatus == true) {
            Serial.println("Fan: OFF");
            digitalWrite(PIN_FAN, LOW);
            fanStatus = false;
        }
        lastMeasureTime = millis();
    }
}
Ausgabe in der seriellen Konsole
Abb.: Ausgabe in der seriellen Konsole
zurück