Hallo, ich möchte analoges eingangssignal eines Potis mit dem Luftfeuchtigkeitswert des DHT 11 abgleichen ( steuerung für eine Getreidetrocknung). Was muss ich in Zeile 16 " if (poti > ???? ) eintragen, um den Potiwert (0-100) mit der gemessenden Luftfeuchtigkeit abzugleichen? Ich Hoffe mir kann jemand zeitnahe helfen. Vielen Dank schonmal im vorraus. PS. Ich habe auf die schnelle leider keinen analogen Luftfeuchtigkeitssensor gefunden. Damit wäre es für mich einfacher gewesen.
int messWert=analogRead(pinPoti);
Serial.println("messWert");
int poti=map(messWert, 0, 1023, 0, 100);
Serial.println(poti);
if (poti> ???? )
{
digitalWrite(pinled,HIGH);
}
else
{
digitalWrite(pinled,LOW);
}
// Wait a few seconds between measurements.
delay(1000); // Hier definieren wir die Verweilzeit die gewartet wird
// bis der Sensor wieder ausgelesen wird. Da der DHT11
// auch ca. 2 Sekunden hat um seine Werte zuaktualisieren
// macht es keinen sinn ihn schneller auszulesen!
float h = dht.readHumidity(); // Lesen der Luftfeuchtigkeit und speichern in die Variable h
float t = dht.readTemperature(); // Lesen der Temperatur in °C und speichern in die Variable t
/( Überprüfen ob alles richtig Ausgelesen wurde )/
if (isnan(h) || isnan(t)) {
Serial.println("Fehler beim auslesen des Sensors!");
return;
}
// Nun senden wir die gemessenen Werte an den PC dise werden wir im Seriellem Monitor sehen
Serial.print("Luftfeuchtigkeit: ");
Serial.print(h); // Ausgeben der Luftfeuchtigkeit
Serial.print("%\t"); // Tabulator
Serial.print("Temperatur: ");
Serial.print(t); // Ausgeben der Temperatur
Serial.write('°'); // Schreiben des ° Zeichen
Serial.println("C");
}
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
float h = 37.5; // luftfeuchte
unsigned int poti = 45; // Potiwert
unsigned int vergleichsWert = static_cast<unsigned int>(h + 0.5); // float wert ggf. aufrunden und zu unsigned int casten
if (poti > vergleichsWert) {
Serial.println(F("Potiwert ist größer als Luftfeuchtewert"));
} else {
Serial.println(F("Potiwert ist kleiner oder gleich Luftfeuchtewert"));
}
Wäre nur gut, wenn die Luftfeuchte vom DHT vor dem Potiwert bzw. vor dem ersten Vergleich ermittelt wird.
Vielen Dank schonmal,
der Sketch soll letzten endes die luftfeuchtigkeitsgehalt ermittelt und dann ein relais schalten (brenner der trocknung deaktivieren) , wenn der ermittelte Wert kleiner ist, als die am poti eingestellten z.b. 65%.
Ich würde eine Hysterese vorsehen, mindestens wenn der Feuchtigkeitswert auch mal zappeln kann: ( Trocknung ein > 65% / Trocknung aus < 60%, dazwischen unverändert lassen )
Das klingt plausible könnte mir jemand einen sketch anhand der beschreibung schreiben? ich bin da leider noch nicht so sicher und morgen müsste die Trocknung wieder laufen:grimacing:
Du kannst ja mal in der verlinkten Simulation herumspielen. Nach dem Start kannst du durch Klick auf den DHT22 die Luftfeuchte ändern und oder den Schiebepoti verstellen.
Es wurde angenommen, dass das Relais schließt, wenn der Steuerpin auf HIGH geschaltet wird.
Ob das bei Dir so ist, keine Ahnung. Das Programm ist mal so schnell zusammengeklöppelt, aber vielleicht reicht es ja als Beispielgeber...
Wenn das Relais "EIN" Schaltet geht die LED an...
Eine Displayausgabe ist auch nicht dabei... musst Du selber machen... weiß ja keiner was Du im Detail zusammen bastelst. Ansonsten könnte das im Prinzip sein, was Du haben willst.