int led1=13;
int led2=12;
int led3=11;
int buzzer=10;
int buzzerState = LOW;
int alarmState = LOW;
int ledState1 = LOW;
int ledState2 = LOW;
int ledState3 = LOW;
long previousMillis1 = 0; // will store last time LED was updated
long previousMillis2 = 0;
long previousMillis3 = 0;
long previousMillisAlm = 0;
long interval = 300;
int btn1=2;
int btn2=3;
int btn3=4;
double ledblink=160; //ตั้งเวลา led กระพริบ
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=10000; //ตั้งเวลา coolling
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();
}
if(alarmState==1){
alarm();
}
}
void checkled1(){
if(btnprevsta1=0){
starttime1=millis();
//digitalWrite(led1, HIGH);
}
else{
elapetime1=millis()-starttime1;
if(elapetime1>=settime){
ledblink1();
//Serial.println("Tray_1 Overtime");
}
else{
//Serial.println("Tray_1 Cooling start");
digitalWrite(led1, HIGH);
}
}
}
void checkled2(){
if(btnprevsta2=0){
starttime2=millis();
}
else{
elapetime2=millis()-starttime2;
if(elapetime2>=settime){
ledblink2();
//Serial.println("Tray_2 Overtime");
}
else{
//Serial.println("Tray_2 Cooling start");
digitalWrite(led2, HIGH);
}
}
}
void checkled3(){
if(btnprevsta3=0){
starttime3=millis();
}
else{
elapetime3=millis()-starttime3;
if(elapetime3>=settime){
ledblink3();
//Serial.println("Tray_3 Overtime");
}
else{
//Serial.println("Tray_3 Cooling start");
digitalWrite(led3, HIGH);
}
}
}
void ledblink1(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis1 > interval) {
// save the last time you blinked the LED
previousMillis1 = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState1 == LOW)
ledState1 = HIGH;
else
ledState1 = LOW;
// set the LED with the ledState of the variable:
digitalWrite(led1, ledState1);
}
}
void ledblink2(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis2 > interval) {
// save the last time you blinked the LED
previousMillis2 = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState2 == LOW)
ledState2 = HIGH;
else
ledState2 = LOW;
// set the LED with the ledState of the variable:
digitalWrite(led2, ledState2);
}
}
void ledblink3(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis3 > interval) {
// save the last time you blinked the LED
previousMillis3 = currentMillis;
// if the LED is off turn it on and vice-versa:
if (ledState3 == LOW)
ledState3 = HIGH;
else
ledState3 = LOW;
// set the LED with the ledState of the variable:
digitalWrite(led3, ledState3);
}
}