ใส่delay แล้วทำให้กดปุ่ม ไม่ค่อยเปลี่ยนโหมด มีวิธีไหนที่ทำให้กดปุ่มง่ายๆไหมครับ หรือต้องแก้ตรงไหนครับ (ขอบคุณครับ)
โค๊ดนี้ครับ
#define led1 2
#define led2 4
#define led3 6
#define relay 8
#define ledON4 11
#define sw 5
unsigned int cnt = 0;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(ledON4, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(sw, INPUT_PULLUP);
digitalWrite(ledON`Preformatted text`4, 64);
}
void loop() {
if (digitalRead(sw) == 0) {
delay(250);
cnt++;
if (cnt > 3)cnt = 0;
}
switch (cnt) {
case 0: fn0(); break;
case 1: fn1(); break;
case 2: fn2(); break;
case 3: fn3(); break;
}
}
void fn0() {
digitalWrite(led1, LOW); //LOWไฟติด
digitalWrite(led2, LOW); //HIGHไฟดับ
digitalWrite(led3, LOW);
digitalWrite(relay, HIGH);
}
void fn1() {
digitalWrite(relay, HIGH);
delay(50);
digitalWrite(relay, LOW);
delay(50);
digitalWrite(led3, HIGH);
}
void fn2() {
digitalWrite(relay, LOW);
delay(175);
digitalWrite(relay, HIGH);
delay(175);
digitalWrite(led3, LOW);
digitalWrite(led2, HIGH);
}
void fn3() {
digitalWrite(relay, LOW);
delay(300);
digitalWrite(relay, HIGH);
delay(300);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
}