-
Notifications
You must be signed in to change notification settings - Fork 0
/
Timer.ino
82 lines (78 loc) · 3.04 KB
/
Timer.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
void verificar_timers(unsigned int minutos){
if(multiplyOf(95,minutos)) //oxigenador HDR
{
digitalWrite(Oxigenador, HIGH);
oxigenador.minutosApagar = minutos + 10;// bomba1.tiempoPrendidoDia;
Serial.print("prendo OX");
}
Serial.print(poa);
if (poa){
if(apagaralotrodia){
if(minutos>minutosEncendido){
if(minutos == minutosEncendido || multiplyOf(bomba1.intervaloDia,minutos+bomba1.offsetEncenderDia)){ //en este caso del prender al otro dia usaremos como referencia para calcular el
digitalWrite(BOMBA, HIGH); //offset la hora de encendido
bomba1.minutosApagar = minutos + bomba1.tiempoPrendidoDia;
Serial.print("PRENDO BOMBA");
}
}
else{
if(minutos == minutosEncendido || multiplyOf(bomba1.intervaloDia,minutos+bomba1.offsetApagarDia)){ //en este caso del prender al otro dia usaremos como referencia para calcular el
digitalWrite(BOMBA, HIGH); //offset la hora de apagado
bomba1.minutosApagar = minutos + bomba1.tiempoPrendidoDia;
Serial.print("PRENDO BOMBA");
}
}
}
else if (minutos == minutosEncendido || multiplyOf(bomba1.intervaloDia,minutos+bomba1.offsetEncenderDia)){
digitalWrite(BOMBA, HIGH); //en el caso que el momento de luz sea en el mismo dia, usaremos la hora de prender
bomba1.minutosApagar = minutos + bomba1.tiempoPrendidoDia; //para calcular el offset
Serial.print("PRENDO BOMBA");
}
}
if(bomba1.minutosApagar>1439){
bomba1.minutosApagar=bomba1.minutosApagar-1439;
}
if(minutos > bomba1.minutosApagar){
Serial.print("apago Bomba");
digitalWrite(BOMBA, LOW);
}
if(oxigenador.minutosApagar>1439){
oxigenador.minutosApagar=oxigenador.minutosApagar-1439;
}
if(minutos>oxigenador.minutosApagar){
Serial.print("apago Ox");
digitalWrite(Oxigenador, LOW);
}
}
bool multiplyOf(int number2,int number1)
{
if (number1==0)
{
return 0;
}
int resto;
resto = number1%number2; // el resto de la division de number 2 sobre number 1
if(resto==0)
{
return 1;
}
else
{
return 0;
}
}
void configurarBomba1(void){
EEPROM.write(disparosDiaB1Pos, bomba1.disparosDia);
EEPROM.write(tiempoPrendidoDiaB1Pos, bomba1.tiempoPrendidoDia);
Serial.println("si4");
Serial.println(minutosDeLuz);
Serial.println(bomba1.disparosDia);
bomba1.intervaloDia = minutosDeLuz / bomba1.disparosDia;
Serial.println("si5");
int resto;
resto = minutosEncendido % bomba1.intervaloDia; // el resto de la division de number 2 sobre number 1
bomba1.offsetEncenderDia = bomba1.intervaloDia - resto;
resto = minutosApagar % bomba1.intervaloDia; // el resto de la division de number 2 sobre number 1
bomba1.offsetApagarDia = bomba1.intervaloDia - resto;
Serial.println("si6");
}