ich beschäftige mich schon seid einiger Zeit mit dem Arduino und habe auch alles soweit hinbekommen. Bei der Programmierung einer Hyserese scheitert es aber leider.
Mein Vorghaben: Heizung einschalten bei 24°C und ausschalten, wenn 25°C erreicht ist. Und Kühlung anschalten bei 26°C und ausschalten bei 25°C. (Als Kontrolle habe ich Leds)
Würde spezielle Variablen setzen wenn der untere oder der obere Bereich erreicht wird, damit kannst Du dann im mittleren Bereich feststellen aus welcher Richtung Du gerade kommst und entsprechende reagieren.
Was in der Richtung:
boolean heating;
boolean cooling;
void loop() {
if (celcius <=24)
heating = true;
if (celcius <=25)
cooling = false;
if (celcius >=25)
heating = false;
if (celcius >=26)
cooling = true;
if (heating) {
digitalWrite(heizer,HIGH);
digitalWrite(lufter,LOW);
digitalWrite(redled,LOW);
digitalWrite(blueled,HIGH);
digitalWrite(greenled,LOW);
}
if (cooling)
{
digitalWrite(heizer,LOW);
digitalWrite(lufter,HIGH);
digitalWrite(redled,HIGH);
digitalWrite(blueled,LOW);
digitalWrite(greenled,LOW);
}
if (!heating && !cooling)
{
digitalWrite(heizer,LOW);
digitalWrite(lufter,LOW);
digitalWrite(redled,LOW);
digitalWrite(blueled,LOW);
digitalWrite(greenled,HIGH);
}
Mein Vorghaben: Heizung einschalten bei 24°C und ausschalten, wenn 25°C erreicht ist. Und Kühlung anschalten bei 26°C und ausschalten bei 25°C. (Als Kontrolle habe ich Leds)
else if (celcius >24 && celcius <26)
{
digitalWrite(heizer,LOW);
digitalWrite(lufter,LOW);
Mit dieser If-Anweisung
schaltest Du die Heizung bei 24,0 Grad ein und bei 24,1 Grad aus und
schaltest Du den Lüfter bei 26,0 Grad ein und bei 25,9 aus.
vielen Dank für eure schnelle Antwort.
Joghurt; ich habe dein Beispiel übernommen und es hat sofort funktioniert. Ich habe es gerade ausprobiert.
Danke Danke Danke
Das stimmt auch wieder.
Hab zwar den Fehler aufgezeigt aber gleich wieder einen neuen produziert.
Mit anderen grezwerten müßte es funktionieren, aber Joghurts Lösung ist die bessere.
Joghurt Danke für's verbessern
Grüße Uwe