Kellerbelüftung

Hallo,

ich habe mir eine Kellerlüftung mit Taupunktsteuerung gebaut. Den Sketch habe ich nicht selber geschrieben, dafür fehlt mir das nötige wissen, ich habe ihn aus diversen anderen Projekten zusammen gezaubert. Er funktioniert soweit gut, allerdings wenn die minimale innen Temperatur erreicht ist, in meinem Fall 14°C, dann soll die Lüftung ausgehen und auch für eine gewisse zeit(2std. oder länger) ausbleiben. Momentan ist es so, dass bei 14°C die Lüftung ausgeht und einige Sekunden später wieder an geht, da die Temperatur dann wieder 14,1°C hat.

Ich könnte mein Problem ja mit der delay Funktion lösen, aber dann zeigt mein angeschlossenes Display solange keine aktuellen werte mehr an. Genau das möchte ich umgehen und hab es mit millis versucht, aber damit komme ich jetzt nicht weiter. Ich hoffe hier ist einer bereit mir zu helfen.

Ich hatte hier versucht die millis ein zu bauen aber das zeigte keine Wirkung. Ideal wäre wenn die 14° errecht sind für 2std. nicht gelüftet wird, damit sich die Temperatur im Keller wieder normalisieren kann.

if (aktTemp_IN <= 14 )                                      //Indoor Temp <14°C => OFF
      {
        digitalWrite(relais_auf, HIGH);
        digitalWrite(relais_zu, LOW);
        digitalWrite(relais_lufter, HIGH);
        digitalWrite(LED_ROT, HIGH);
        digitalWrite(LED_GRUN, LOW);
        
      }

Wie sollen wir aus Sketchfragmenten etwas erkennen ?
Bitte poste den kompletten Sketch.

Hier mal der ganze Sketch im Anhang... Version 3.0 von 02.01.19 Aktualisierung der Kommentare.

Keller_v3.0.ino (9.32 KB)

Aus meiner Sicht kann der Skettch nicht funktionieren bzw. kompilieren.
Du verwendest im Sketch "lcd" die aber nicht definiert wurden bzw. eine Library fehl.

Im übrigen ist der Sketch sehr schwer zu lesen, da deine Kommentare fehlen.
Da ist ein Zurechtfinden sehr schwer.

Schalte aus bei 14 Grad (wie du es hast), aber schalte erst wieder ein bei 15 oder 16 Grad.

Sorry hatte nicht alles kopiert... jetzt sollte es vollständig sein.

eine Hysterese einbauen würde mir auch nicht wirklich helfen, da im Sommer die Temperaturen im Keller anders sind.

Franz54:
Schalte aus bei 14 Grad (wie du es hast), aber schalte erst wieder ein bei 15 oder 16 Grad.

Das wäre eine Möglichkeit, jedoch sprach der TO von 2 Std. Differenz.
Da würde ich ab Abschaltung die millis zählen und nach 2 Std. wieder einschalten und zur Sicherheit noch eine Teperaturdifferenz mit einbeziehen.

fraseb:
............eine Hysterese einbauen würde mir auch nicht wirklich helfen, da im Sommer die Temperaturen im Keller anders sind.

Und was machst du dann im Sommer mit dem Abschaltewert 14 Grad ?

Hi

Momentan macht Er ja nichts Anderes - nur, daß die Einschalt-Temperatur 'größer 14' ist, statt 15 oder 16.
Da Du eh schon ein delay(120000) verwendest, was stört Dich an einem weiteren delay()?
Meine Herangehensweise wäre, daß ich LAUFEND die Messwerte einlese.
Je nachdem, was ich gerade mache (aktueller Status), entscheiden diese Werte darüber, was passiert.
Eine ganz klassische State-Maschine.
siehe Combie's Liste zu diesem Thema

Die 'Wieder-Einschalt-Bedingung' kann ja durchaus auf eine Wartezeit von 2 Minuten aufbauen - DA sehe ich nun gar kein Problem drin.

Ein/Zwei Kommentare im Sketch, was wo passieren soll, wären aber auch nicht schlecht.

  • würde zeigen, daß Du verstehst, was Da passiert
  • würden uns die Hilfe wesentlich erleichtern
  • ließen durchblicken, daß Du und helfen willst, damit wir Dir helfen können

MfG

Franz54:
Und was machst du dann im Sommer mit dem Abschaltewert 14 Grad ?

der Wert soll ja nur eine Sicherheit sein, gegen auskühlen des Kellers im Winter. Im Sommer wird der nicht greifen.

postmaster-ino:
Ein/Zwei Kommentare im Sketch, was wo passieren soll, wären aber auch nicht schlecht.

  • würde zeigen, daß Du verstehst, was Da passiert
  • würden uns die Hilfe wesentlich erleichtern
  • ließen durchblicken, daß Du und helfen willst, damit wir Dir helfen können

MfG

Ich habe nachgebessert und einige Kommentare hinzugefügt, leider passte der Sketch nicht mehr in einem Post, deshalb habe ich weiter oben die Datei angehangen.

Hi

Packe dann bitte in den entsprechenden Post einen Hinweis, von wann diese Sketch-Version denn nun ist.
Denke, Du hast das File an #2 angehangen.
Darin sehe ich (kurz überflogen) bei ca. Zeile 110

    //CALCULATIONS

    double calcDewPoint_IN(double aktTemp_IN, float relHum_IN);
    double calcDewPoint_OUT(double aktTemp_OUT, float relHum_OUT);
    {

Hier werden zwei Funktionen bekannt gemacht - nicht mehr.
Der Klammerblock darunter dürfte bestenfalls egal sein.
Habe den Sketch aber gerade nur in einem Editor offen und nicht in der IDE
Die von Dir verwendete LiquidCristalI2C ist eine Andere, als ich benutze - bekomme den SKetch nur kompiliert, wenn ich den LCD-Kram anpasse/auskommentiere.
Irgendwie ist der Taupunkt-Kram fehl am Platz - kA, warum Das So kompiliert :o
Es kommen nur einige Warnungen von unbenutzten Variablen/Parametern - Nichts Schlimmes.

MfG

Warum sperrst du jetzt die Helfer aus, die den Sketch nicht lesen können ?
Teile den Sketch in 2 Teile auf und poste ihn.
Dann können auch Mobile User den lesen.
Und welche Info fehlt noch. Dir wurden doch schon Tipps gegeben.

postmaster-ino:
Hi

Packe dann bitte in den entsprechenden Post einen Hinweis, von wann diese Sketch-Version denn nun ist.
Denke, Du hast das File an #2 angehangen.
Darin sehe ich (kurz überflogen) bei ca. Zeile 110

    //CALCULATIONS

double calcDewPoint_IN(double aktTemp_IN, float relHum_IN);
    double calcDewPoint_OUT(double aktTemp_OUT, float relHum_OUT);
    {



Hier werden zwei Funktionen bekannt gemacht - nicht mehr.
Der Klammerblock darunter dürfte bestenfalls egal sein.
~~Habe den Sketch aber gerade nur in einem Editor offen und nicht in der IDE~~ 
Die von Dir verwendete LiquidCristalI2C ist eine Andere, als ich benutze - bekomme den SKetch nur kompiliert, wenn ich den LCD-Kram anpasse/auskommentiere.
Irgendwie ist der Taupunkt-Kram fehl am Platz - kA, warum Das So kompiliert :o
Es kommen nur einige Warnungen von unbenutzten Variablen/Parametern - Nichts Schlimmes.

MfG

Die Kalkulation habe ich aus einen anderen Sketch kopiert, dass war ein ähnliches Projekt und ich konnte es für meine zwecke gut nutzen. An der Kalkulation habe ich auch nichts geändert, da sie so augenscheinlich Funktioniert. Auf jeden Fall bekomme ich brauchbare werte und habe sie mit einem Hygrometer/Thermometer abgeglichen. Von daher passt das für mich.

Die Adresse von LCD habe ich ausgelesen, da es anfänglich nicht Funktioniert hatte.

HotSystems:
Warum sperrst du jetzt die Helfer aus, die den Sketch nicht lesen können ?
Teile den Sketch in 2 Teile auf und poste ihn.
Dann können auch Mobile User den lesen.
Und welche Info fehlt noch. Dir wurden doch schon Tipps gegeben.

Welche Info fehlt noch? Und auf zwei aufteilen wollte ich eigentlich zwecks der Übersichtlichkeit... kann das aber gerne noch machen.