int led1=13;
int led2=12;
int led3=11;
int btn1=2;
int btn2=3;
int btn3=4;
double ledblink=160;
bool btnsta1=0;
bool btnprevsta1=0;
bool ledsta1=0;
bool btnsta2=0;
bool btnprevsta2=0;
bool ledsta2=0;
bool btnsta3=0;
bool btnprevsta3=0;
bool ledsta3=0;
unsigned long settime=5000;
unsigned long starttime1=0;
unsigned long elapetime1=0;
unsigned long starttime2=0;
unsigned long elapetime2=0;
unsigned long starttime3=0;
unsigned long elapetime3=0;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(btn1, INPUT);
pinMode(btn2, INPUT);
pinMode(btn3, INPUT);
}
void loop() {
btnsta1=digitalRead(btn1);
btnsta2=digitalRead(btn2);
btnsta3=digitalRead(btn3);
if(btnsta1==1){
checkled1();
}
else{
digitalWrite(led1, LOW);
Serial.println("Tray_1 Cooling stop");
btnprevsta1=0;
starttime1=millis();
}
if(btnsta2==1){
checkled2();
}
else{
digitalWrite(led2, LOW);
Serial.println("Tray_2 Cooling stop");
btnprevsta2=0;
starttime2=millis();
}
if(btnsta3==1){
checkled3();
}
else{
digitalWrite(led3, LOW);
Serial.println("Tray_3 Cooling stop");
btnprevsta3=0;
starttime3=millis();
}
}
void checkled1(){
if(btnprevsta1=0){
starttime1=millis();
digitalWrite(led1, HIGH);
}
else{
elapetime1=millis()-starttime1;
if(elapetime1>=settime){
digitalWrite(led1, LOW);
delay(ledblink);
digitalWrite(led1, HIGH);
delay(ledblink);
digitalWrite(led1, LOW);
Serial.println("Tray_1 Overtime");
}
else{
Serial.println("Tray_1 Cooling start");
digitalWrite(led1, HIGH);
}
}
//Serial.print("elapetime1=");
//Serial.println(elapetime1);
}
void checkled2(){
if(btnprevsta2=0){
starttime2=millis();
digitalWrite(led2, HIGH);
}
else{
elapetime2=millis()-starttime2;
if(elapetime2>=settime){
digitalWrite(led2, LOW);
delay(150);
digitalWrite(led2, HIGH);
delay(150);
digitalWrite(led2, LOW);
Serial.println("Tray_2 Overtime");
}
else{
Serial.println("Tray_2 Cooling start");
digitalWrite(led2, HIGH);
}
}
}
void checkled3(){
if(btnprevsta3=0){
starttime3=millis();
digitalWrite(led3, HIGH);
}
else{
elapetime3=millis()-starttime3;
if(elapetime3>=settime){
digitalWrite(led3, LOW);
delay(150);
digitalWrite(led3, HIGH);
delay(150);
digitalWrite(led3, LOW);
Serial.println("Tray_3 Overtime");
}
else{
Serial.println("Tray_3 Cooling start");
digitalWrite(led3, HIGH);
}
}
}