const int buttonPin = 2; // ขาของปุ่มกดที่เชื่อมต่อ
int buttonState = 0; // สถานะปุ่มกด
int lastButtonState = 0; // สถานะปุ่มกดก่อนหน้า
int pressCount = 0; // จำนวนครั้งที่กดปุ่ม
unsigned long lastDebounceTime = 0; // เวลาในการเดบาวน์
unsigned long debounceDelay = 50; // หน่วงเวลาเดบาวน์
void setup() {
pinMode(buttonPin, INPUT); // ตั้งค่าเป็น INPUT
Serial.begin(9600); // เริ่มต้น Serial Monitor ด้วยความเร็ว 9600 bps
}
void loop() {
int reading = digitalRead(buttonPin);
// ตรวจสอบการเปลี่ยนแปลงสถานะปุ่มกด
if (reading != lastButtonState) {
lastDebounceTime = millis(); // เริ่มต้นการเดบาวน์
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (reading != buttonState) {
buttonState = reading;
// เมื่อปุ่มกดเปลี่ยนสถานะ
if (buttonState == HIGH) {
pressCount++; // เพิ่มจำนวนครั้งที่กดปุ่ม
Serial.print("Button pressed ");
Serial.print(pressCount);
Serial.println(" times");
}
}
}
lastButtonState = reading; // อัปเดตสถานะปุ่มกดก่อนหน้า
}