Kli­ma­an­la­ge mit 12V-Lüf­ter und Transistor

Lese­zeit: 4 Minu­ten

Lösung
Seite als PDF

Mit einem Tran­sis­tor soll ein 12V-Lüf­ter geschal­tet wer­den. Der Lüf­ter soll ein­ge­schal­tet wer­den, wenn eine fest­ge­leg­te Tem­pe­ra­tur über­schrit­ten wird. Sinkt die Tem­pe­ra­tur wie­der unter die­sen Wert, schal­tet sich der Lüf­ter wie­der aus.
Auf dem LCD wird die aktu­el­le Tem­pe­ra­tur und der Zustand des Lüf­ters angezeigt.

So sieht es aus:

Der hier ver­wen­de­te Lüf­ter stammt aus einem aus­ran­gier­ten Com­pu­ter. Er hat 12 V und eine Leis­tungs­auf­nah­me von 0,6 A = 600 mA.
Der Ardui­no lie­fert an sei­nen digi­ta­len Aus­gän­gen 40mA, mit­hin viel zu wenig, um den Lüf­ter zu betrei­ben. Daher ist eine exter­ne Strom­quel­le mit 12V not­wen­dig. Ich habe für die­sen Zweck ein Bat­te­rie­pack mit 8 AA-Bat­te­rien verwendet.

Pinbelegung Transistor TIP120

Der Tran­sis­tor TIP120

Bei­spie­le für DHT11/DHT22 Sensoren

Die Pin­be­le­gung kann sich von der hier gezeig­ten unter­schei­den. Ach­te auf die Beschrif­tung des Sensors!

Benö­tig­te Bauteile:

  • LCD 1602
  • Tem­pe­ra­tur-/Feuch­tig­keits­sen­sor DHT11/DHT22
  • 12V Lüf­ter
  • 12V Strom­quel­le (Bat­te­rie­pack oder Netzteil)
  • Tran­sis­tor TIP120/TIP122
  • Lei­tungs­dräh­te
  • Diode (optio­nal)

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Benö­tig­te Bibliotheken:

Bin­de die benö­tig­ten Biblio­the­ken ein und defi­nie­re 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 set­up-Teil star­tet das LCD und legt den pin­Mo­de für den Tran­sis­tor fest.

void setup()
{
  // LCD einschalten
  lcd.init();
  lcd.backlight();

  // Transistor als OUTPUT definieren
  pinMode(TRANSISTOR, OUTPUT);

    // Sensor DHT starten
  dht.begin();
}

Der loop-Teil. Beach­te 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);
}

Startseite
Aufgaben A-Z
Suchen
Downloads
Fehlermeldungen
Seite als PDF

Ver­wand­te Aufgaben:


Letzte Aktualisierung: 24. Jul 2023 @ 8:39