const int numSwitches = 4; // จำนวนปุ่มทั้งหมด
const int switchPins[numSwitches] = {2, 3, 4, 5}; // หมายเลขพินของปุ่มต่างๆ
int switchState[numSwitches]; // เก็บสถานะปัจจุบันของปุ่ม
int lastSwitchState[numSwitches]; // เก็บสถานะก่อนหน้าของปุ่ม
int pressCount[numSwitches] = {0}; // เก็บจำนวนครั้งที่กดของแต่ละปุ่ม
void setup() {
Serial.begin(9600);
for (int i = 0; i < numSwitches; i++) {
pinMode(switchPins[i], INPUT_PULLUP); // ตั้งค่าพินเป็น Input Pullup
lastSwitchState[i] = HIGH; // ตั้งค่าการอ่านเริ่มต้น (ไม่ได้กดปุ่ม)
}
}
void loop() {
for (int i = 0; i < numSwitches; i++) {
switchState[i] = digitalRead(switchPins[i]); // อ่านสถานะของปุ่มแต่ละปุ่ม
// ตรวจสอบว่ามีการเปลี่ยนแปลงจากการปล่อยเป็นการกด
if (switchState[i] == LOW && lastSwitchState[i] == HIGH) {
pressCount[i]++; // เพิ่มจำนวนการกดของปุ่ม
Serial.print("Switch ");
Serial.print(i + 1);
Serial.print(" pressed ");
Serial.print(pressCount[i]);
Serial.println(" times");
delay(50); // ป้องกันการกดซ้ำเนื่องจากการดีบาวน์
}
lastSwitchState[i] = switchState[i]; // บันทึกสถานะปัจจุบัน
}
}