#define LED0 21
#define LED1 19
#define LED2 18
#define LED3 5
#define LED4 17
#define LED5 16
#define LED6 4
#define LED7 2
#define button 22
int ledIndex = 0;
const int ledCount = 8;
const int LED[ledCount] = {21, 19, 18,5,17,16,4,2}; // ขาของ LED
bool lastButtonState = LOW; // สถานะของปุ่มก่อนหน้า
bool currentButtonState; // สถานะของปุ่มปัจจุบัน
void setup() {
Serial.begin(115200);
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(button, INPUT);
}
void loop() {
digitalWrite(LED0, LOW);
delay(10);
digitalWrite(LED1, LOW);
delay(10);
digitalWrite(LED2, LOW);
delay(10);
digitalWrite(LED3, LOW);
delay(10);
digitalWrite(LED4, LOW);
delay(10);
digitalWrite(LED5, LOW);
delay(10);
digitalWrite(LED6, LOW);
delay(10);
digitalWrite(LED7, LOW);
delay(10);
int buttonState = digitalRead(button);
// ตรวจสอบว่าปุ่มถูกกด
if (buttonState == HIGH) {
// ปิด LED ทั้งหมด
for (int i = 0; i < ledCount; i++) {
digitalWrite(LED[i], LOW);
}
// เปิด LED ตัวถัดไป
digitalWrite(LED[ledIndex], HIGH);
// เปลี่ยนไปที่ LED ถัดไป
ledIndex++;
if (ledIndex >= ledCount) {
ledIndex = 0;
}
// รอเพื่อหลีกเลี่ยงการอ่านค่าปุ่มซ้ำๆ
delay(2000); // ปรับเวลา delay ตามความเหมาะสม
}
// อัปเดตสถานะของปุ่ม
lastButtonState = currentButtonState;
}