Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #include <LiquidCrystal_I2C.h>// Bibliothek importieren
- #define DHTPIN 12 // DHT11 an Pin 12
- #define DHTTYPE DHT11 // DHT11 auswählen, bei WokWi ist es ein DHT22
- DHT dht(DHTPIN, DHTTYPE); // PIN 12 und Type DHT22
- int lcdAddress = 0x27;
- LiquidCrystal_I2C lcd(lcdAddress, 16, 2);
- //Drehpotentiometer am analogen PIN A0
- #define KNOB A0
- //definieren der LEDs
- #define LED1 4 //LED1 rot
- #define LED2 5 //LED2 grün
- #define LED3 6 //LED3 blau
- #define LED4 7 //LED4 gelb
- //minTemp festlegen
- const float minTemp = 20.0;
- float curTemp;
- void setup() {
- //DHT22 initialisieren
- dht.begin();
- //Seriellen Monitor starten
- Serial.begin(9600);
- // Display initialisieren
- lcd.init();
- lcd.clear();
- lcd.setBacklight(1); // 0 = aus | 1 = ein
- //setzen der LEDs als Ausgang
- pinMode(LED1, OUTPUT);
- pinMode(LED2, OUTPUT);
- pinMode(LED3, OUTPUT);
- pinMode(LED4, OUTPUT);
- }
- void loop() {
- //lesen des aktuellen Wertes am analogen Pin A0
- int value = analogRead(KNOB);
- //lesen der aktuellen Temperatur (DHT22)
- curTemp = dht.readTemperature();
- //mappen des Wertes vom Drehpotentiometers
- //auf einen Wert zwischen 22°C und 26°C.
- float maxTemp = map(value,0,1024,22,27);
- // Anzeige der Werte auf Display und im seriellen Monitor
- lcd.setCursor(0,0); // Cursor auf Zeile 1, Zeichen 1 setzen
- lcd.print("max. = ");
- lcd.print(maxTemp);
- lcd.print(" \337C");
- lcd.setCursor(0,1); // Cursor auf Zeile 1, Zeichen 1 setzen
- lcd.print("akt. = ");
- lcd.print(curTemp); // Ausgabe: Temperatur
- lcd.print(" \337C");
- Serial.print(minTemp);
- Serial.print(" - ");
- Serial.print(maxTemp);
- Serial.print(" - ");
- Serial.println(curTemp);
- //Auswertung und Anzeige mit LED
- if (curTemp > maxTemp) {
- digitalWrite(LED1, HIGH);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- }
- else if (curTemp < maxTemp && curTemp > 20) {
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- }
- else {
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, HIGH);
- }
- delay(2000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement