From 1e5d3db97c0ffb178573261d849ef546739566d8 Mon Sep 17 00:00:00 2001 From: "jp.av.dev" Date: Tue, 6 Jul 2021 22:06:33 -0400 Subject: [PATCH] update --- caldera_rata_1/caldera_rata_1.ino | 258 ++++++++++++------------------ 1 file changed, 100 insertions(+), 158 deletions(-) diff --git a/caldera_rata_1/caldera_rata_1.ino b/caldera_rata_1/caldera_rata_1.ino index 13e33fa..774adbe 100755 --- a/caldera_rata_1/caldera_rata_1.ino +++ b/caldera_rata_1/caldera_rata_1.ino @@ -1,158 +1,100 @@ -#include -#include - -Servo myservo_X; -RTC_DS3231 reloj; - -volatile DateTime fecha; -unsigned long intervalo_loop=5000; -unsigned long previoMillisTermo=0; -unsigned long previoMillisLoop=0; -unsigned long actualMillis; -byte horaON = 5; -byte horaOFF = 7; -byte cont=0; -bool estado_termo; -bool espera; -bool start; - -void setup() { - myservo_X.attach(9); - Serial.begin(115200); - reloj.begin(); - start=1; - estado_termo = 0; - //reloj.adjust(DateTime(__DATE__, __TIME__)); -} - - -void loop() { - if(start) { - myservo_X.write(30); - start=0; - fecha = reloj.now(); - printFecha(); - } - actualMillis = millis(); - if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) { - fecha = reloj.now(); - if((fecha.hour() >= horaON) && (fecha.hour() < horaOFF) && (estado_termo == 0)) { - termoON(); - } else if(((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) && (estado_termo == 1)) { - termoOFF(); - } - previoMillisLoop = millis(); - } -} - -// Secuencia de encendido y apagado de Caldera -void termoON() { - myservo_X.write(120); - espera = 0; - cont = 0; - previoMillisTermo = millis(); - do{ - actualMillis = millis(); - if(espera == 0) { - if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { - myservo_X.write(110); - previoMillisTermo = millis(); - espera = 1; - cont++; - } - } - if(espera == 1) { - if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { - myservo_X.write(120); - previoMillisTermo = millis(); - espera = 0; - cont++; - } - } - } while (cont < 4); - estado_termo = 1; -} - -void termoOFF() { - myservo_X.write(45); - espera = 0; - cont = 0; - previoMillisTermo = millis(); - do{ - actualMillis = millis(); - if(espera == 0) { - if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { - myservo_X.write(62); - previoMillisTermo = millis(); - espera = 1; - cont++; - } - } - if(espera == 1) { - if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { - myservo_X.write(45); - previoMillisTermo = millis(); - espera = 0; - cont++; - } - } - } while (cont < 4); - estado_termo = 0; -} - -//En caso de ser necesario mostrar hora, este codigo aƱade un 0 a los valores menores a 10 -String getHora(char var) { - switch (var) { - case 'h': - if(fecha.hour() < 10) { - return ('0'+(String)fecha.hour()); break; - } else { - return (String)fecha.hour();break; - } - case 'm': - if(fecha.minute() <10) { - return ('0'+(String)fecha.minute()); break; - } else { - return (String)fecha.minute();break; - } - case 's': - if(fecha.second() <10) { - return ('0'+(String)fecha.second()); break; - } else { - return (String)fecha.second();break; - } - case 'd': - if(fecha.day() <10) { - return ('0'+(String)fecha.day()); break; - } else { - return (String)fecha.day();break; - } - case 'n': - if(fecha.month() <10) { - return ('0'+(String)fecha.month()); break; - } else { - return (String)fecha.month();break; - } - case 'a': - if(fecha.year() <10) { - return ('0'+(String)fecha.year()); break; - } else { - return (String)fecha.year();break; - } - } -} - -// Enviar hora y fecha por puerto serie -void printFecha() { - Serial.print(getHora('d')); - Serial.print("/"); - Serial.print(getHora('n')); - Serial.print("/"); - Serial.print(getHora('a')); - Serial.print(" "); - Serial.print(getHora('h')); - Serial.print(":"); - Serial.print(getHora('m')); - Serial.print(":"); - Serial.println(getHora('s')); -} +#include +#include + +Servo myservo_X; +RTC_DS3231 reloj; + +volatile DateTime fecha; +unsigned long intervalo_loop=5000; +unsigned long previoMillisTermo=0; +unsigned long previoMillisLoop=0; +unsigned long actualMillis; +byte horaON = 5; +byte horaOFF = 7; +byte cont=0; +bool estado_termo; +bool espera; +bool start; + +void setup() { + myservo_X.attach(9); + Serial.begin(115200); + reloj.begin(); + start=1; + estado_termo = 0; +} +//reloj.adjust(DateTime(__DATE__, __TIME__)); + +void loop() { + if(start) { + myservo_X.write(30); + start=0; + fecha = reloj.now(); + printFecha(); + } + actualMillis = millis(); + if ((unsigned long)(actualMillis - previoMillisLoop) >= intervalo_loop) { + fecha = reloj.now(); + if((fecha.hour() >= horaON) && (fecha.hour() < horaOFF) && (estado_termo == 0)) { + termoON(); + } else if(((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) && (estado_termo == 1)) { + termoOFF(); + } + previoMillisLoop = millis(); + } +} + +// Secuencia de encendido y apagado de Caldera +void termoON() { + myservo_X.write(120); + espera = 0; + cont = 0; + previoMillisTermo = millis(); + do{ + actualMillis = millis(); + if(espera == 0) { + if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { + myservo_X.write(110); + previoMillisTermo = millis(); + espera = 1; + cont++; + } + } + if(espera == 1) { + if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { + myservo_X.write(120); + previoMillisTermo = millis(); + espera = 0; + cont++; + } + } + } while (cont < 4); + estado_termo = 1; +} + +void termoOFF() { + myservo_X.write(45); + espera = 0; + cont = 0; + previoMillisTermo = millis(); + do{ + actualMillis = millis(); + if(espera == 0) { + if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { + myservo_X.write(62); + previoMillisTermo = millis(); + espera = 1; + cont++; + } + } + if(espera == 1) { + if ((unsigned long)(actualMillis - previoMillisTermo) >= 500) { + myservo_X.write(45); + previoMillisTermo = millis(); + espera = 0; + cont++; + } + } + } while (cont < 4); + estado_termo = 0; +}