add EEPROM y variables de control
This commit is contained in:
parent
21239552c8
commit
3389c25f66
@ -1,5 +1,15 @@
|
|||||||
#include <Servo.h>
|
#include <Servo.h>
|
||||||
#include <RTClib.h>
|
#include <RTClib.h>
|
||||||
|
#include <EEPROM.h>
|
||||||
|
|
||||||
|
#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;
|
Servo myservo_X;
|
||||||
RTC_DS3231 reloj;
|
RTC_DS3231 reloj;
|
||||||
@ -9,10 +19,14 @@ 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 horaON1;
|
||||||
byte horaOFF=7;
|
byte horaOFF1;
|
||||||
byte horaON2=16;
|
byte horaON2;
|
||||||
byte horaOFF2=18;
|
byte horaOFF2;
|
||||||
|
byte posON1;
|
||||||
|
byte posON2;
|
||||||
|
byte posOFF1;
|
||||||
|
byte posOFF2;
|
||||||
byte cont=0;
|
byte cont=0;
|
||||||
bool estado_termo;
|
bool estado_termo;
|
||||||
bool espera;
|
bool espera;
|
||||||
@ -21,8 +35,10 @@ bool start;
|
|||||||
void setup() {
|
void setup() {
|
||||||
myservo_X.attach(9);
|
myservo_X.attach(9);
|
||||||
reloj.begin();
|
reloj.begin();
|
||||||
start=1;
|
setVarControl(); // Provisorio, a dividir segun control horario, posiciones. futuras vars
|
||||||
estado_termo=0;
|
estado_termo=0;
|
||||||
|
variablesControl();
|
||||||
|
start=1;
|
||||||
//reloj.adjust(DateTime(__DATE__, __TIME__));
|
//reloj.adjust(DateTime(__DATE__, __TIME__));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,12 +51,12 @@ void loop() {
|
|||||||
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() >= horaON1) && (fecha.hour() < horaOFF1)) ||
|
||||||
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
|
((fecha.hour() >= horaON2) && (fecha.hour() < horaOFF2))) && (estado_termo==0)) {
|
||||||
termoACC(120, 110);
|
termoACC(posON1, posON2);
|
||||||
} else if((((fecha.hour() < horaON) || (fecha.hour() >= horaOFF)) &&
|
} else if((((fecha.hour() < horaON1) || (fecha.hour() >= horaOFF1)) &&
|
||||||
((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) {
|
((fecha.hour() < horaON2) || (fecha.hour() >= horaOFF2))) && (estado_termo==1)) {
|
||||||
termoACC(45, 62);
|
termoACC(posOFF1, posOFF2);
|
||||||
}
|
}
|
||||||
previoMillisLoop = millis();
|
previoMillisLoop = millis();
|
||||||
}
|
}
|
||||||
@ -73,3 +89,33 @@ void termoACC(byte pos1, byte pos2) {
|
|||||||
estado_termo=!estado_termo;
|
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);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user