( TAG <= dt && dt < NACHT && Aussen <= 5); // tagsüber bei großer Kälte.
Damit sage ich doch das etwas ausgeschaltet wird wenn es tagsüber ist und es tagsüber kälter ist wie 5 Grad.
Und wenn ich das dann als false nehme wird die Pumpe und der Brenner ausgeschaltet wenn es NICHT tagsüber ist und es tagsüber NICHT kälter als 5 Grad war?
Hier ist mal alles was ich habe:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4); //(Adresse/Zeichen pro Zeile/Anzahl Zeilen)
#include <Wire.h>
#include <DS3231.h>
DS3231 rtc(SDA, SCL); // Init the DS3231 using the hardware interface
Time t;
//Pin Definition
int Umwaelzp = 9; //output relais Umwälzpumpe
int Brenner = 10; //output relais Brenner
int Infrarotheizung = 11; //Schütz Infrarotheizungen
int Nele_Bad = 12; //Elektroheizung Nele Bad
int Taster_Urlaub = 4; //input Taster Urlaub (Frostschutz)
//Variablen
int Kessel = 0; //Temperatur Kessel
int Aussen = 0; //Temperatur Aussen
int Wasser = 0; //Temperatur Warmwasser
int R_Soll_Temp = 0; //Sollwert Temperatur Kessel
int Bad_Nele_Temp = 0; //Sollwert Temperatur Nele Bad
int dt = 0; //Uhrzeit zum Schalten und Messen
const unsigned int TAG = 6*60+0; // 06:00 Einschaltzeitpunkt
const unsigned int NACHT = 21*60+0; // 21:00 Ausschaltzeitpunkt
const unsigned int TAGTEMP = 8*60+0; // 08:00 Mess beginn
const unsigned int NACHTTEMP = 18*60+0; // 18:00 Mess Ende
// später Urlaubstaster
unsigned long Zeit_Tdruck = 0; //Zeitpunkt Taster betätigt
/*******************************************************************************************************************************************************/
int Hyst = 0; //Hysterese Brenner nach Aussentemperatur, gewünschte Hysterese durch 2 geteilt
/*******************************************************************************************************************************************************/
void setup()
{
pinMode(Brenner, OUTPUT);
pinMode(Umwaelzp, OUTPUT);
pinMode(Infrarotheizung, OUTPUT);
pinMode(Nele_Bad, OUTPUT);
pinMode(Taster_Urlaub, INPUT); //Pulldown Hardwaremäßig, HIGH bei betätigtem Taster
digitalWrite(Brenner, LOW);
digitalWrite(Umwaelzp, LOW);
digitalWrite(Infrarotheizung, LOW);
digitalWrite(Nele_Bad, LOW);
lcd.init();
lcd.backlight(); //Hintergrundbeleuchtung einschalten (0 schaltet die Beleuchtung aus).
rtc.begin(); // Initialize the rtc object
}
void loop() {
/*******************************************************************************************************************************************************/
//Berechnung der Temperaturen je Dezimalwert (10-Bit A/D), Faktor hundert, da 10mV SesorSignal = 1°C (LM35 ohne Verstärkung, TMP36 für Aussen)
Kessel = analogRead(A1) * (5.00/1023) * 100;
Aussen = analogRead(A2) * (200/409) - 50;
Wasser = analogRead(A3) * (5.00/1023) * 100;
Bad_Nele_Temp = analogRead(A3) * (5.00/1023) * 100;
//R_Soll_Temp aus Aussentemperatur berechnen
R_Soll_Temp = map(Aussen,-20,20,85,55); //Sollwert Kessel nach Aussentemperatur.
//Hyst aus Aussentemperatur berechnen
Hyst = map(Aussen,-20,20,1,5); //Hysterese nach Aussentemperatur.
//Schaltzeiten Pumpe und Brenner ab 5°C Aussentemperatur
bool nachtaus = (TAG <= dt && dt < NACHT && Aussen <= 5); // TRUE ist tagsüber
bool tagtemp = (TAGTEMP <= dt && dt < NACHTTEMP); // TRUE ist tagsüber
/*******************************************************************************************************************************************************/
//Umwälzpumpe-/ Sommerregelung
if (Aussen <= 19) //Aussentemperatur unter 19°C Umwälzpumpe EIN
{
digitalWrite(Umwaelzp, HIGH);
}
else if (Aussen >= 20 || nachtaus==false) //Aussentemperatur über 20°C oder Nachtabschaltung über 5°C Umwälzpumpe AUS
{
digitalWrite(Umwaelzp, LOW);
/*******************************************************************************************************************************************************/
//Brenner Regelung
if (Kessel <= R_Soll_Temp - Hyst || Wasser <= 45) //Wenn Kessel oder Wasser zu kalt, Brenner EIN
{
digitalWrite(Brenner, HIGH);
}
else if (Kessel == R_Soll_Temp + Hyst && Wasser >=55 || nachtaus==false) //Wenn Kessel warm und Wasser >=55°C Brenner AUS
{
digitalWrite(Brenner, LOW);
}
/*******************************************************************************************************************************************************/
//Uhrzeit holen
t = rtc.getTime(); // Get data from the DS3231
int stunden = t.hour;
int minuten = t.min;
int sekunden = t.sec;
int sekseitmit = sekunden + (minuten * 60) + (stunden * 60 * 60);
int dt = t.hour*60 + t.min;
long unixzeit = rtc.getUnixTime(t);
//Display Anzeige
{
lcd.setCursor(0,0); //Erste Ziffer Position, Zweite Ziffer Zeile
lcd.print("Aussen");
lcd.setCursor(0,1);
lcd.print("Kessel");
lcd.setCursor(0,2);
lcd.print("Wasser");
lcd.setCursor(0,3);
lcd.print("Brenner");
lcd.setCursor(11,3);
lcd.print("Pumpe");
}
}
}