fix funcionamiento, condiciones on y off

This commit is contained in:
jp.av.dev 2021-07-07 16:01:19 -04:00
parent 1e5d3db97c
commit ad5b8fb1bf
2 changed files with 158 additions and 161 deletions

View File

@ -9,8 +9,8 @@ unsigned long intervalo_loop=5000;
unsigned long previoMillisTermo=0; unsigned long previoMillisTermo=0;
unsigned long previoMillisLoop=0; unsigned long previoMillisLoop=0;
unsigned long actualMillis; unsigned long actualMillis;
byte horaON = 5; byte horaON=5;
byte horaOFF = 7; byte horaOFF=7;
byte horaON2=16; byte horaON2=16;
byte horaOFF2=18; byte horaOFF2=18;
byte cont=0; byte cont=0;
@ -19,86 +19,84 @@ bool espera;
bool start; bool start;
void setup() { void setup() {
myservo_X.attach(9); myservo_X.attach(9);
reloj.begin(); reloj.begin();
start=1; start=1;
estado_termo = 0; estado_termo=0;
} }
//reloj.adjust(DateTime(__DATE__, __TIME__));
void loop() { void loop() {
if(start) { if(start) {
myservo_X.write(30); myservo_X.write(30);
start=0; start=0;
fecha = reloj.now(); fecha=reloj.now();
} }
actualMillis = millis(); actualMillis = millis();
if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) { if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) {
fecha = reloj.now(); fecha = reloj.now();
if(((fecha.hour() >= horaON) && (fecha.hour() < horaOFF)) || if((((fecha.hour() >= horaON) && (fecha.hour() < horaOFF)) ||
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2)) && ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
(estado_termo == 0)) { termoON();
termoON(); } else if((((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) &&
} else if(((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) && ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) {
((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2)) && termoOFF();
(estado_termo == 1)) { }
termoOFF(); previoMillisLoop = millis();
} }
previoMillisLoop = millis();
}
} }
// Secuencias de encendido y apagado de Caldera // Secuencias de encendido y apagado de Caldera
void termoON() { void termoON() {
myservo_X.write(120); myservo_X.write(120);
espera = 0; espera=0;
cont = 0; cont=0;
previoMillisTermo = millis(); previoMillisTermo=millis();
do{ do{
actualMillis = millis(); actualMillis=millis();
if(espera == 0) { if(espera==0) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(110); myservo_X.write(110);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 1; espera=1;
cont++; cont++;
} }
} }
if(espera == 1) { if(espera==1) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(120); myservo_X.write(120);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 0; espera=0;
cont++; cont++;
} }
} }
} while (cont < 4); } while(cont<4);
estado_termo = 1; estado_termo=1;
} }
void termoOFF() { void termoOFF() {
myservo_X.write(45); myservo_X.write(45);
espera = 0; espera=0;
cont = 0; cont=0;
previoMillisTermo = millis(); previoMillisTermo=millis();
do{ do{
actualMillis = millis(); actualMillis=millis();
if(espera == 0) { if(espera==0) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(62); myservo_X.write(62);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 1; espera=1;
cont++; cont++;
} }
} }
if(espera == 1) { if(espera==1) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(45); myservo_X.write(45);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 0; espera=0;
cont++; cont++;
} }
} }
} while (cont < 4); } while (cont<4);
estado_termo = 0; estado_termo=0;
} }

View File

@ -9,9 +9,9 @@ unsigned long intervalo_loop=5000;
unsigned long previoMillisTermo=0; unsigned long previoMillisTermo=0;
unsigned long previoMillisLoop=0; unsigned long previoMillisLoop=0;
unsigned long actualMillis; unsigned long actualMillis;
byte horaON = 5; byte horaON=5;
byte horaOFF = 7; byte horaOFF=7;
byte horaON2=14; byte horaON2=16;
byte horaOFF2=18; byte horaOFF2=18;
byte cont=0; byte cont=0;
bool estado_termo; bool estado_termo;
@ -19,103 +19,102 @@ bool espera;
bool start; bool start;
void setup() { void setup() {
myservo_X.attach(9); Serial.begin(9600);
Serial.begin(9600); myservo_X.attach(9);
reloj.begin(); reloj.begin();
start=1; start=1;
estado_termo = 0; estado_termo=0;
//reloj.adjust(DateTime(__DATE__, __TIME__)); DateTime dt(2021, 7, 5, 5, 32, 0);
//DateTime dt(2021, 7, 5, 17, 32, 0); reloj.adjust(dt);
//reloj.adjust(dt);
} }
//reloj.adjust(DateTime(__DATE__, __TIME__));
void loop() { void loop() {
if(start) { if(start) {
myservo_X.write(30); Serial.println("Inicio");
start=0; myservo_X.write(30);
fecha = reloj.now(); start=0;
printFecha(); fecha=reloj.now();
} }
actualMillis = millis(); actualMillis = millis();
if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) { if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) {
fecha = reloj.now(); fecha = reloj.now();
if(((fecha.hour() >= horaON) && (fecha.hour() < horaOFF)) || if((((fecha.hour() >= horaON) && (fecha.hour() < horaOFF)) ||
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2)) && ((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
(estado_termo == 0)) { Serial.print("pre ON : ");
Serial.print("Cond. ON pre Encendido, estado_termo: "); Serial.println((String)estado_termo);
Serial.println((String)estado_termo); termoON();
termoON(); Serial.print("post ON : ");
Serial.print("Cond. ON post Encendido, estado_termo: "); Serial.println((String)estado_termo);
Serial.println((String)estado_termo); } else if((((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) &&
} else if(((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) && ((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) {
((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2)) && Serial.print("pre OFF : ");
(estado_termo == 1)) { Serial.println((String)estado_termo);
Serial.print("Cond. OFF pre Apagado, estado_termo: "); termoOFF();
Serial.println((String)estado_termo); Serial.print("post OFF : ");
termoOFF(); Serial.println((String)estado_termo);
Serial.print("Cond. OFF post Apagado, estado_termo: "); }
Serial.println((String)estado_termo); previoMillisLoop = millis();
} }
previoMillisLoop = millis();
}
} }
// Secuencias de encendido y apagado de Caldera // Secuencias de encendido y apagado de Caldera
void termoON() { void termoON() {
myservo_X.write(120); myservo_X.write(120);
espera = 0; espera=0;
cont = 0; cont=0;
previoMillisTermo = millis(); previoMillisTermo=millis();
do{ do{
actualMillis = millis(); actualMillis=millis();
if(espera == 0) { if(espera==0) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(110); myservo_X.write(110);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 1; espera=1;
cont++; cont++;
} }
} }
if(espera == 1) { if(espera==1) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(120); myservo_X.write(120);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 0; espera=0;
cont++; cont++;
} }
} }
} while (cont < 4); } while(cont<4);
estado_termo = 1; estado_termo=1;
} }
void termoOFF() { void termoOFF() {
myservo_X.write(45); myservo_X.write(45);
espera = 0; espera=0;
cont = 0; cont=0;
previoMillisTermo = millis(); previoMillisTermo=millis();
do{ do{
actualMillis = millis(); actualMillis=millis();
if(espera == 0) { if(espera==0) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(62); myservo_X.write(62);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 1; espera=1;
cont++; cont++;
} }
} }
if(espera == 1) { if(espera==1) {
if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) {
myservo_X.write(45); myservo_X.write(45);
previoMillisTermo = millis(); previoMillisTermo=millis();
espera = 0; espera=0;
cont++; cont++;
} }
} }
} while (cont < 4); } while (cont<4);
estado_termo = 0; estado_termo=0;
} }
//En caso de ser necesario mostrar hora, este codigo añade un 0 a los valores menores a 10 //En caso de ser necesario mostrar hora, este codigo añade un 0 a los valores menores a 10
String getHora(char var) { String getHora(char var) {
switch (var) { switch (var) {