Hallo Liebes Forum,
Ich habe eine kleine Lüftersteuerung für mein 3D Druckgehäuse gebaut. Im großen und ganzen ist es nur ein Lüfter, ein Temperatursensor und ein Display, wo die Ist und Soll Temperatur ausgegeben wird. Dies funktioniert recht gut.
Nun möchte ich gern die Soll Temperatur mit einem Encoder Steuern. Also die Variable verändern, sodass ich die Temperatur im Gehäuse Steuern kann.
Da ich absoluter Anfänger bin habe ich der größten Teil des Code aus dem Internet zusammen kopiert und für meine Verhältnisse angepasst. Dies hat so weit auch bei dem ersten Teil funktioniert nur bei dem Encoder komme ich einfach nicht weiter.
Vielleicht habt ihr ja eine Lösung für mein Problem.
#include "DHT.h"
#include <LiquidCrystal.h>
#define DHTPIN 2 // what pin we're connected to
#define DHTTYPE DHT22 // DHT 22 (AM2302)
#define fan 8
const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
int ENB2 = 9;
int maxHum = 60;
int sollTemp = 25;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(fan, OUTPUT);
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
if(t > sollTemp) {
digitalWrite(fan, HIGH);
analogWrite(ENB2, 100);
} else {
digitalWrite(fan, LOW);
}
Serial.print("Humidity: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C ");
lcd.setCursor(0,0);
lcd.print("sollTemp.:");
lcd.print(sollTemp);
lcd.print(" \337C");
lcd.setCursor(0, 1);
lcd.print("istTemp.: ");
lcd.print(t);
lcd.print(" \337C"); // Kürzel \337 für das °-Zeichen verwenden
}