
Mit einem Transistor soll ein 12V-Lüfter geschaltet werden. Der Lüfter soll eingeschaltet werden, wenn eine festgelegte Temperatur überschritten wird. Sinkt die Temperatur wieder unter diesen Wert, schaltet sich der Lüfter wieder aus.
Auf dem LCD wird die aktuelle Temperatur und der Zustand des Lüfters angezeigt.
So sieht es aus:
Der hier verwendete Lüfter stammt aus einem ausrangierten Computer. Er hat 12 V und eine Leistungsaufnahme von 0,6 A = 600 mA.
Der Arduino liefert an seinen digitalen Ausgängen 40mA, mithin viel zu wenig, um den Lüfter zu betreiben. Daher ist eine externe Stromquelle mit 12V notwendig. Ich habe für diesen Zweck ein Batteriepack mit 8 AA-Batterien verwendet.

Der Transistor TIP120
Beispiele für DHT11/DHT22 Sensoren

Die Pinbelegung kann sich von der hier gezeigten unterscheiden. Achte auf die Beschriftung des Sensors!
Benötigte Bauteile:
- LCD 1602
- Temperatur-/Feuchtigkeitssensor DHT11/DHT22
- 12V Lüfter
- 12V Stromquelle (Batteriepack oder Netzteil)
- Transistor TIP120/TIP122
- Widerstand 1kΩ
- Leitungsdrähte
- Diode (optional)
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken:
![]() |
![]() |
Binde die benötigten Bibliotheken ein und definiere die Variablen.
#include "DHT.h"
#include "LiquidCrystal_I2C.h"
// LCD einen Namen zuweisen
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Pin des Transistors
int TRANSISTOR = 8;
// Pin DHT22
int SENSOR_DHT = 9;
// Sensortyp festlegen
// DHT22 oder DHT11
#define SensorTyp DHT22
// Sensor DHT einen Namen zuweisen
DHT dht(SENSOR_DHT, SensorTyp);
Der setup-Teil startet das LCD und legt den pinMode für den Transistor fest.
void setup()
{
// LCD einschalten
lcd.init();
lcd.backlight();
// Transistor als OUTPUT definieren
pinMode(TRANSISTOR, OUTPUT);
// Sensor DHT starten
dht.begin();
}
Der loop-Teil. Beachte die Kommentare.
void loop()
{
// Temperatur lesen
float Temperatur = dht.readTemperature();
// in Strings umwandeln, . durch , ersetzen
String AnzeigeTemperatur = String(Temperatur);
AnzeigeTemperatur.replace(".", ",");
// Anzeige LCD
lcd.setCursor(0, 0);
lcd.print("Temperatur: ");
lcd.setCursor(0, 1);
// \337C -> °
lcd.print(AnzeigeTemperatur + " \337C -> DHT22");
// wenn die Temperatur > 25 -> Lüfter einschalten
if (Temperatur > 22)
{
digitalWrite(TRANSISTOR, HIGH);
lcd.setCursor(0, 3);
lcd.print("L\365fter eingeschaltet");
}
// Lüfter ausschalten
else
{
digitalWrite(TRANSISTOR, LOW);
lcd.setCursor(0, 3);
// \365 -> ü
lcd.print("L\365fter ausgeschaltet");
}
// Messintervall
delay(2000);
}
Verwandte Anleitungen:
- BME280 -Messdaten anzeigen
- DHT - Messdaten und Zeit auf TFT anzeigen
- DHT11/DHT22 - Durchschnittstemperatur berechnen und auf einem OLED-Display anzeigen
- DHT11/DHT22 - Wetterdaten aufzeichnen
- DHT11/DHT22 - Wetterdaten mit Bluetooth-Modul übermitteln
- DHT11/DHT22 - Wetterstation LAN
- DHT11/DHT22 - Wetterstation Anzeige auf einem LCD
- DHT11/DHT22 - Wetterstation WiFi
- ESP - DHT Messdaten auf Waveshare 1,54 Zoll E-Ink anzeigen
- Wetterdaten von Openweather mit der API 3.0 auf einem TFT anzeigen
- Messdaten mit BME680 und ESP32 anzeigen
- Temperatur/Feuchtigkeit als Lauftext auf der LED-Matrix des UNO R4 WiFi anzeigen
- BMP280 - Temperatur und Luftdruck messen
- Temperaturanzeige auf einem LCD mit einem ESP32-Wroom
- TMP36 - Temperatur messen
- Wetterstation mit CO2-Messung
- Wetterstation mit Nano ESP32, ESP32-Wroom, NodeMCU, DHT11/DHT22 und OLED
- Wetterstation mit UNO R4 WiFi und BME280
- Wetterstation mit UNO R4 WiFi und LCD
- DHT11/DHT22 - Wetterstation LAN Daten speichern
Letzte Aktualisierung: