
Ziel des Projekts
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.
Die Hardware
Lüfter
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.
Transistor TIP120

Der Transistor TIP120

DHT-Sensor
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)
Der Schaltplan
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Benötigte Bibliotheken
![]() |
![]() |
Das Programm
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 "LCDIC2.h" // LCD einen Namen zuweisen LCDIC2 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 13 |
void setup() { // LCD starten lcd.begin(); // Cursor "verstecken" lcd.setCursor(false); pinMode(TRANSISTOR, OUTPUT); // Sensor DHT starten dht.begin(); } |
Der loop-Teil:
|
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); } |
Ähnliche Projekte
- DHT11/DHT22 – Wetterstation mit Arduino WiFi
- DHT11/DHT22 – Durchschnittstemperatur berechnen und auf einem OLED-Display anzeigen
- TMP36
- DHT11/DHT22 – Wetterstation Anzeige auf einem LCD
- DHT11/DHT22 – Wetterdaten aufzeichnen
- DHT11/DHT22 – Wetterdaten mit Bluetooth-Modul übermitteln
- DHT11/DHT22 – Wetterstation LAN
- DHT11/DHT22 – Wetterstation LAN Daten speichern
- Wetterstation mit UNO R4 WiFi und BME280
- Wetterstation mit UNO R4 Wifi und DHT11/DHT22
Letzte Aktualisierung:








