const int buttonPin = 13; // กำหนดขาสำหรับสวิตช์
const int ledPins[] = {2, 4, 5, 18, 19, 21, 22, 17}; // ขาที่ใช้ควบคุม LED
int numLeds = 8; // จำนวนหลอด LED
int currentLed = 0; // LED ที่กำลังติด
bool systemRunning = false; // สถานะการทำงานของระบบ
bool buttonPressed = false; // สถานะการกดสวิตช์
void setup() {
pinMode(buttonPin, INPUT_PULLUP); // ตั้งค่าขาสวิตช์เป็น input
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT); // ตั้งค่าขาของ LED เป็น output
digitalWrite(ledPins[i], LOW); // เริ่มต้นให้ LED ปิด
}
}
void loop() {
// ตรวจสอบการกดสวิตช์
if (digitalRead(buttonPin) == LOW && !buttonPressed) {
buttonPressed = true; // ตรวจสอบว่าเพิ่งกดสวิตช์
systemRunning = !systemRunning; // เปลี่ยนสถานะเปิด-ปิดระบบ
delay(200); // Debounce หน่วงเวลา
} else if (digitalRead(buttonPin) == HIGH) {
buttonPressed = false; // ปล่อยสวิตช์
}
if (systemRunning) {
// ปิด LED ทั้งหมดก่อนที่จะเปลี่ยนการติด
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW);
}
// ติดไฟ LED ที่ลำดับปัจจุบัน
digitalWrite(ledPins[currentLed], HIGH);
// เลื่อนการติดไป LED ตัวถัดไป
currentLed++;
if (currentLed >= numLeds) {
currentLed = 0;
}
delay(500); // หน่วงเวลาเพื่อให้เห็นการเปลี่ยนแปลง
}
}