
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.
Benötigte Bauteile
- ⇒4-zeiliges LCD mit I²C-Schnittstelle
- ⇒DHT11/DHT22
- 12V Lüfter
- 12V Stromquelle (Batteriepack oder Netzteil)
- ⇒Transistor TIP120/TIP122
- Widerstand 1kΩ
- Leitungsdrähte
- Diode (optional)
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 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
- Durchschnittstemperatur verschiedener Messungen berechnen und auf einem OLED-Display anzeigen
- Messwerte BME280 anzeigen
- Messwerte BME280 mit GFXcanvas auf TFT anzeigen
- Messwerte des BME680-Sensors auf LCD und im Webbrowser anzeigen
- Messwerte des BMP280-Sensor auf LCD anzeigen
- Messwerte des DHT-Sensors und Zeit auf TFT anzeigen
- Messwerte DHT auf einem LCD anzeigen
- Messwerte DHT-Sensor als Lauftext auf der LED-Matrix des UNO R4 WiFi anzeigen
- Messwerte DHT-Sensor auf SD-Karte im CSV-Format speichern
- Messwerte DHT-Sensor auf Waveshare 1,54 Zoll E-Ink anzeigen
Letzte Aktualisierung:

