const int switchPin1 = 2; // ขาที่ต่อสวิตช์ 1
const int switchPin2 = 3; // ขาที่ต่อสวิตช์ 2
const int switchPin3 = 8; // ขาที่ต่อสวิตช์ 3
const int ledPin1 = 4; // ขาที่ต่อหลอดไฟ 1
const int ledPin2 = 5; // ขาที่ต่อหลอดไฟ 2
const int ledPin3 = 6; // ขาที่ต่อหลอดไฟ 3
const int ledPin4 = 7; // ขาที่ต่อหลอดไฟ 4
bool switch1Pressed = false;
bool switch2Pressed = false;
bool switch3Pressed = false;
void setup() {
pinMode(switchPin1, INPUT_PULLUP);
pinMode(switchPin2, INPUT_PULLUP);
pinMode(switchPin3, INPUT_PULLUP);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
// ตรวจสอบสถานะของสวิตช์ 1
if (digitalRead(switchPin1) == LOW) {
delay(50);
if (digitalRead(switchPin1) == LOW) {
switch1Pressed = true;
}
} else {
switch1Pressed = false;
}
// ตรวจสอบสถานะของสวิตช์ 2
if (digitalRead(switchPin2) == LOW) {
delay(50);
if (digitalRead(switchPin2) == LOW) {
switch2Pressed = true;
}
} else {
switch2Pressed = false;
}
// ตรวจสอบสถานะของสวิตช์ 3
if (digitalRead(switchPin3) == LOW) {
delay(50);
if (digitalRead(switchPin3) == LOW) {
switch2Pressed = true;
}
} else {
switch2Pressed = false;
}
// โปรแกรมปกติ
if (!switch1Pressed && !switch2Pressed) {
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
}
// โปรแกรมเมื่อกดสวิตช์ 1
if (switch1Pressed && !switch2Pressed) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, HIGH);
flashLed(ledPin2);
}
// โปรแกรมเมื่อกดสวิตช์ 1 พร้อมกับสวิตช์ 2
if (switch1Pressed && switch2Pressed) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin4, HIGH);
flashLed(ledPin3);
}
// โปรแกรมเมื่อกดสวิตช์ 1 พร้อมกับสวิตช์ 2 พร้อมกับสวิตช์ 3
if (switch1Pressed && switch2Pressed) {
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
flashLed(ledPin4);
}
}
void flashLed(int pin) {
for (int i = 0; i < 5; i++) {
digitalWrite(pin, HIGH);
delay(500);
digitalWrite(pin, LOW);
delay(500);
}
}