From 2e9735d3661cfc8b80e0be152dc7c3c91c66c1ba Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Sun, 11 Jul 2021 03:57:01 -0400 Subject: [PATCH] nuevo intervalo del estado 1(AUTO) > intervalo loop --- caldera_rata_deb/caldera_rata_deb.ino | 34 +++++++++++++++------------ 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/caldera_rata_deb/caldera_rata_deb.ino b/caldera_rata_deb/caldera_rata_deb.ino index a659e1f..1c4fb17 100644 --- a/caldera_rata_deb/caldera_rata_deb.ino +++ b/caldera_rata_deb/caldera_rata_deb.ino @@ -15,9 +15,10 @@ Servo myservo_X; RTC_DS3231 reloj; volatile DateTime fecha; -unsigned long intervalo_loop=2500; -unsigned long previoMillisTermo=0; +unsigned long intervalo_loop=100; unsigned long previoMillisLoop=0; +unsigned long previoMillisTermo=0; +unsigned long previoMillisAUTO=0; unsigned long actualMillis; byte horaON1; byte horaOFF1; @@ -63,17 +64,19 @@ void loop() { fecha = reloj.now(); switch(estado) { case 1: - Serial.println(estado); - if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) || - ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) { - termoACC(posON1, posON2); - Serial.println("TERMO ON"); - } else if((((fecha.hour() < horaON1) || (fecha.hour() >= horaOFF1)) && - ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) { - termoACC(posOFF1, posOFF2); - Serial.println("TERMO OFF"); + if ((unsigned long)(actualMillis - previoMillisAUTO) >= 2000) { + Serial.println(estado); + if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) || + ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) { + termoACC(posON1, posON2); + Serial.println("TERMO ON"); + } else if((((fecha.hour() < horaON1) || (fecha.hour() >= horaOFF1)) && + ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) { + termoACC(posOFF1, posOFF2); + Serial.println("TERMO OFF"); + } } - //previoMillisLoop = millis(); + previoMillisAUTO = millis(); break; case 2: // ajustaReloj @@ -201,17 +204,18 @@ void termoACC(byte pos1, byte pos2) { if(espera==0) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { myservo_X.write(pos2); - previoMillisTermo=millis(); espera=1; cont++; + previoMillisTermo=millis(); } } + actualMillis=millis(); if(espera==1) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { myservo_X.write(pos1); - previoMillisTermo=millis(); espera=0; cont++; + previoMillisTermo=millis(); } } } while (cont<4); @@ -243,7 +247,7 @@ void setVarsEP(){ horaON2 = EEPROM.read(dirHoraON2); horaOFF2 = EEPROM.read(dirHoraOFF2); } - if(validaHR(horaOFF2) && horaOFF2 > horaON2) { + if(validaHR(horaOFF2) && (horaOFF2 > horaON2) && (horaOFF2 > horaOFF1)) { EEPROM.put(dirHoraOFF2, horaOFF2); } else { EEPROM.put(dirHoraON2, horaON1);