From 3389c25f66bd9fc8c382479b2a3250a78318e9be Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Thu, 8 Jul 2021 02:05:10 -0400 Subject: [PATCH] add EEPROM y variables de control --- caldera_rata/caldera_rata.ino | 64 ++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 9 deletions(-) diff --git a/caldera_rata/caldera_rata.ino b/caldera_rata/caldera_rata.ino index 338519a..f381992 100644 --- a/caldera_rata/caldera_rata.ino +++ b/caldera_rata/caldera_rata.ino @@ -1,5 +1,15 @@ #include #include +#include + +#define dirHoraON1 0 +#define dirHoraOFF1 1 +#define dirHoraON2 2 +#define dirHoraOFF2 3 +#define dirPosON1 4 +#define dirPosON2 5 +#define dirPosOFF1 6 +#define dirPosOFF2 7 Servo myservo_X; RTC_DS3231 reloj; @@ -9,10 +19,14 @@ unsigned long intervalo_loop=5000; unsigned long previoMillisTermo=0; unsigned long previoMillisLoop=0; unsigned long actualMillis; -byte horaON=5; -byte horaOFF=7; -byte horaON2=16; -byte horaOFF2=18; +byte horaON1; +byte horaOFF1; +byte horaON2; +byte horaOFF2; +byte posON1; +byte posON2; +byte posOFF1; +byte posOFF2; byte cont=0; bool estado_termo; bool espera; @@ -21,8 +35,10 @@ bool start; void setup() { myservo_X.attach(9); reloj.begin(); - start=1; + setVarControl(); // Provisorio, a dividir segun control horario, posiciones. futuras vars estado_termo=0; + variablesControl(); + start=1; //reloj.adjust(DateTime(__DATE__, __TIME__)); } @@ -35,12 +51,12 @@ void loop() { actualMillis = millis(); if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) { fecha = reloj.now(); - if((((fecha.hour() >= horaON) && (fecha.hour() < horaOFF)) || + if((((fecha.hour() >= horaON1) && (fecha.hour() < horaOFF1)) || ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) { - termoACC(120, 110); - } else if((((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) && + termoACC(posON1, posON2); + } else if((((fecha.hour() < horaON1) || (fecha.hour() >= horaOFF1)) && ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) { - termoACC(45, 62); + termoACC(posOFF1, posOFF2); } previoMillisLoop = millis(); } @@ -73,3 +89,33 @@ void termoACC(byte pos1, byte pos2) { estado_termo=!estado_termo; } +// provisorio, case config para hora, horas o dias, posiciones, etc. +void setVarControl() { + horaON1 = 5; + horaOFF2 = 7; + horaON2 = 16; + horaOFF2 = 18; + posON1 = 120; + posON2 = 110; + posOFF1 = 45; + posOFF2 = 62; + EEPROM.put(dirHoraON1, horaON1); + EEPROM.put(dirHoraOFF1, horaOFF1); + EEPROM.put(dirHoraON2, horaON2); + EEPROM.put(dirHoraOFF2, horaOFF2); + EEPROM.put(dirPosON1,posON1); + EEPROM.put(dirPosON2, posON2); + EEPROM.put(dirPosOFF1, posOFF1); + EEPROM.put(dirPosOFF2, posOFF2); +} + +void variablesControl() { + horaON1 = EEPROM.read(dirHoraON1); + horaOFF1 = EEPROM.read(dirHoraOFF2); + horaON2 = EEPROM.read(dirHoraON2); + horaOFF2 = EEPROM.read(dirHoraOFF2); + posON1 = EEPROM.read(dirPosON1); + posON2 = EEPROM.read(dirPosON2); + posOFF1 = EEPROM.read(dirPosOFF1); + posOFF2 = EEPROM.read(dirPosOFF2); +}