const int ElectrovalvulaPlantaSuperior=13;
const int ElectrovalvulaPlantaInferior=12;
const int Bomba=11;
const int TermostatoPlantaSuperior=10;
const int TermostatoPlantaInferior=9;
const int Caldera=8;
const int PilotoValvulaSuperior=7;
const int PilotoValvulaInferior=6;
int estado=1;// estados de las valvulas.
boolean TS;
boolean TI;
boolean B=0;
boolean PSup=0;
boolean PInf=0;
void setup() {
pinMode(ElectrovalvulaPlantaSuperior,OUTPUT);
pinMode(ElectrovalvulaPlantaInferior,OUTPUT);
pinMode(PilotoValvulaSuperior,OUTPUT);
pinMode(PilotoValvulaInferior,OUTPUT);
pinMode(Bomba,INPUT);
pinMode(TermostatoPlantaSuperior,INPUT);
pinMode(TermostatoPlantaInferior,INPUT);
pinMode(Caldera,OUTPUT);
}
void loop(){
TS=digitalRead(TermostatoPlantaSuperior);
TI=digitalRead(TermostatoPlantaInferior);
PSup=digitalRead(ElectrovalvulaPlantaSuperior);
PInf=digitalRead(ElectrovalvulaPlantaInferior);
B = digitalRead(Bomba);
delay(100);
if (((TS)||(TI))==HIGH) {digitalWrite(Caldera,LOW);}else {digitalWrite(Caldera,HIGH);}
if((TS==0)&&(TI==1))estado=2;
if((TS==1)&&(TI==0))estado=3;
if((TS==1)&&(TI==1))estado=4;
if (TI==0) {digitalWrite(PilotoValvulaInferior,HIGH);}
if (TS==0) {digitalWrite(PilotoValvulaSuperior,HIGH);}
if(estado==1)estado1();
if(estado==2)estado2();
if(estado==3)estado3();
if(estado==4)estado4();
}
void estado1() {
digitalWrite(ElectrovalvulaPlantaSuperior,HIGH);
digitalWrite(ElectrovalvulaPlantaInferior,HIGH);
if(B==1) estado=4; else estado=1;
}
void estado2() {
digitalWrite(ElectrovalvulaPlantaSuperior,HIGH);
digitalWrite(ElectrovalvulaPlantaInferior,LOW);
if (TI==1) {digitalWrite(PilotoValvulaInferior,LOW);}
if ((TI==0)&&(B==1)) {digitalWrite(PilotoValvulaInferior,HIGH);delay(500);digitalWrite(PilotoValvulaInferior,LOW);delay(500);}
if(B==0) estado=1;
}
void estado3() {
digitalWrite(ElectrovalvulaPlantaSuperior,LOW);
digitalWrite(ElectrovalvulaPlantaInferior,HIGH);
if (TS==1) {digitalWrite(PilotoValvulaSuperior,LOW);}
if ((TS==0)&&(B==1)) {digitalWrite(PilotoValvulaSuperior,HIGH);delay(500);digitalWrite(PilotoValvulaSuperior,LOW);delay(500);}
if(B==0) estado=1;
}
void estado4() {
digitalWrite(ElectrovalvulaPlantaSuperior,LOW);
digitalWrite(ElectrovalvulaPlantaInferior,LOW);
if (TI==1) {digitalWrite(PilotoValvulaInferior,LOW);}
if (TS==1) {digitalWrite(PilotoValvulaSuperior,LOW);}
if ((TS==0)&&(TI==0)&&(B==1)) {digitalWrite(PilotoValvulaInferior,HIGH);digitalWrite(PilotoValvulaSuperior,HIGH);delay(500);digitalWrite(PilotoValvulaInferior,LOW);digitalWrite(PilotoValvulaSuperior,LOW);delay(500);}
if(B==0) {delay(5000);
estado=1;}
}