
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 des DHT-Sensors berechnen und auf einem OLED-Display anzeigen
- Messwerte BME280 mit GFXcanvas auf TFT anzeigen
- Messwerte des BME280-Sensors auf LCD anzeigen
- Messwerte des BME280-Sensors mit UNO R4 WiFi im Webbrowser anzeigen
- Messwerte des BME680-Sensors auf LCD und im Webbrowser anzeigen
- Messwerte des BMP280-Sensor auf LCD anzeigen
- Messwerte des DHT-Sensor auf der SD-Karte des Ethernet-Shields speichern und im Webbrowser anzeigen
- Messwerte des DHT-Sensor mit Ethernet-Shield im Webbrowser anzeigen
- Messwerte des DHT-Sensors auf Waveshare 1,54 Zoll E-Ink anzeigen
- Messwerte des DHT-Sensors mit Arduino WiFi im Webbrowser anzeigen
Letzte Aktualisierung:

