
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:
- 4‑zeiliges LCD mit I²C-Schnittstelle
- 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #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.
1 2 3 4 5 6 7 8 9 10 11 12 | 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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:
Letzte Aktualisierung:








