int relay[3]={21,19,18};//pines de accionamiento de los reles
int led[3]={15,2,4};//pines para encender los leds
int botton[3]={16,17,5};//pines de los pulsadores
unsigned long Tim0;//variables para millis
unsigned long Tim2;
unsigned long Tim4;
unsigned long Tim6;
unsigned long Tim1=0;
unsigned long Tim3=0;
unsigned long Tim5=0;
unsigned long Tim7=0;
int wait0=500;
int wait1=500;
int wait2=500;
int wait3=500;
boolean ledReset=false;//parpadeo
int flag=0;//bandera para apagar parpadeo
void setup() {
Serial.begin(9600);
for(int i=0; i<=3; i++){
pinMode(led[i],OUTPUT);
pinMode(relay[i],OUTPUT);
pinMode(botton[i],INPUT);
digitalWrite(relay[i],LOW);
digitalWrite(led[i],LOW);
}
}
void loop() {
Tim0=millis();
if((Tim0-Tim1)>=wait0 && flag==0){
Tim1=Tim0;
ledReset=!ledReset;
digitalWrite(led[1],ledReset);
}
Tim2=millis();
int Reset=digitalRead(botton[2]);
if((Tim2-Tim3)>=wait1 && Reset==1){
flag=1;
digitalWrite(led[1],LOW);
Tim3=Tim2;
for(int i=1; i<=2; i++){
digitalWrite(relay[i],HIGH);
}
}
Tim4=millis();
int Start=digitalRead(botton[0]);
if((Tim4-Tim5)>=wait2 && Start==1 && flag==1){
Tim5=Tim4;
digitalWrite(relay[0],HIGH);
}
Tim6=millis();
int Stop=digitalRead(botton[1]);
if((Tim6-Tim7)>=wait3 && Stop==1){
flag=0;
Tim7=Tim6;
for(int j=0; j<=3; j++){
digitalWrite(relay[j],LOW);
}
}
}