Kli­ma­an­la­ge - Tran­sis­tor als Ver­stär­ker

Lese­zeit: 5 Minu­ten

Kli­ma­an­la­ge mit BMP280

Navi­ga­ti­on

Der Tran­sis­tor soll als Ver­stär­ker für einen 12 V Lüf­ter ein­ge­setzt 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 ange­zeigt.

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.

Der Strom muss also ver­stärkt wer­den, die­se Auf­ga­be erle­digt der Tran­sis­tor. Du kannst einen TIP120 oder einen TIP122 ver­wen­den.

Zunächst soll der Lüf­ter durch Drü­cken eines Tas­ters gestar­tet wer­den. Er soll solan­ge lau­fen, bis der Tas­ter wie­der los­ge­las­sen wird.

Benö­tig­te Bau­tei­le:

  • Tas­ter
  • 12V Lüf­ter
  • Tran­sis­tor TIP120/TIP122
  • Lei­tungs­dräh­te

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

Das dazu­ge­hö­ri­ge Pro­gramm:

int TASTER = 9;

int LUEFTER = 8;
int TasterLesen = 0;

void setup()
{
  pinMode(LUEFTER, OUTPUT);
  pinMode(TASTER, INPUT_PULLUP);
}

void loop()
{
  TasterLesen = digitalRead(TASTER);
  if (TasterLesen == LOW)
  {
    digitalWrite(LUEFTER, HIGH);
  }
  else
  {
     digitalWrite(LUEFTER, LOW);
  }
}

Jetzt sol­len der Tem­pe­ra­tur­sen­sor DHT22 und das LCD zusätz­lich ange­schlos­sen wer­den.

Der Sen­sor DHT22 misst die Tem­pe­ra­tur und die Luft­feuch­tig­keit. Er besitzt drei Anschlüs­se.
Die Ver­si­on mit vier Pins muss in der Rei­hen­fol­ge 5V → Daten (Pin) → leer → GND geschal­tet wer­den.

Benö­tig­te Bau­tei­le:

  • LCD 1602
  • Temperatur-/Feuchtigkeitssensor DHT22
  • 12V Lüf­ter
  • Tran­sis­tor TIP120/TIP122
  • Lei­tungs­dräh­te

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 Biblio­the­ken:
Sketch → Biblio­thek ein­bin­den → Biblio­the­ken ver­wal­ten

Bin­de die benö­tig­ten Biblio­the­ken ein und defi­nie­re die Varia­blen.

# include <SimpleDHT.h>
# include <LiquidCrystal_I2C.h>

int SENSOR_DHT22 = 9;

// Sensor einen Namen zuweisen (dht22)
SimpleDHT22 dht22(SENSOR_DHT22);

// LCD einen Namen zuweisen
LiquidCrystal_I2C lcd(0x27, 20, 4);

// Pin des Transistors
int TRANSISTOR = 8;

Der setup-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();

  pinMode(TRANSISTOR, OUTPUT);
}

Der loop-Teil. Beach­te die Kom­men­ta­re.

void loop()
{
  float Temperatur;
  
  // Daten lesen 
  // nur Temperatur lesen
  dht22.read2(&Temperatur, NULL, NULL);
  
  // 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 → ° siehe Sonderzeichen LCD
  lcd.print(AnzeigeTemperatur + " \337C -> DHT22");

  // Transistor schalten
  // als Beispiel 25° 
  if (Temperatur > 25)
  {
    digitalWrite(TRANSISTOR, HIGH);
    lcd.setCursor(0, 3);
    lcd.print("L\365fter eingeschaltet");
  }

  // Transistor ausschalten
  else
  {
    digitalWrite(TRANSISTOR, LOW);
    lcd.setCursor(0, 3);

    // \365 → ü
    lcd.print("L\365fter ausgeschaltet");
  }

  delay(2000);
}


Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 3. Sep 2020 @ 14:18