/////////////////////////////////////////////////////////////////
#include "Button2.h"
/////////////////////////////////////////////////////////////////
#define BUTTON_PINA 34
#define BUTTON_PINB 35
/////////////////////////////////////////////////////////////////
Button2 buttonA, buttonB;
int i_SUM = 0;
/////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(9600);
delay(50);
Serial.println("\n\nButton Demo");
buttonA.begin(BUTTON_PINA);
buttonA.setLongClickTime(1000);//按住超過2000才算長按
buttonA.setDoubleClickTime(100);//在500亳秒內雙擊才算
Serial.println(" Longpress Time: " + String(buttonA.getLongClickTime()) + "ms");
Serial.println(" DoubleClick Time: " + String(buttonA.getDoubleClickTime()) + "ms");
// buttonA.setChangedHandler(changed);//啟動互換
buttonA.setPressedHandler(pressed);//啟動按下
// buttonA.setReleasedHandler(released);//啟動放開
// buttonA.setTapHandler(tap);//啟動輕敲
buttonA.setLongClickDetectedHandler(longClickDetected);//啟動長按住未放開
buttonA.setLongClickHandler(longClick);//啟動啟動長按住己放開
buttonA.setClickHandler(click);//啟動單擊
buttonA.setDoubleClickHandler(doubleClick);//啟動雙擊
buttonA.setTripleClickHandler(tripleClick);//啟動三擊
buttonB.begin(BUTTON_PINB);
buttonB.setLongClickTime(1000);//按住超過2000才算長按
buttonB.setDoubleClickTime(100);//在500亳秒內雙擊才算
Serial.println(" Longpress Time: " + String(buttonB.getLongClickTime()) + "ms");
Serial.println(" DoubleClick Time: " + String(buttonB.getDoubleClickTime()) + "ms");
// buttonB.setChangedHandler(changed);//啟動互換
buttonB.setPressedHandler(pressed);//啟動按下
// buttonB.setReleasedHandler(released);//啟動放開
// buttonB.setTapHandler(tap);//啟動輕敲
buttonB.setLongClickDetectedHandler(longClickDetected);//啟動長按住未放開
buttonB.setLongClickHandler(longClick);//啟動啟動長按住己放開
buttonB.setClickHandler(click);//啟動單擊
buttonB.setDoubleClickHandler(doubleClick);//啟動雙擊
buttonB.setTripleClickHandler(tripleClick);//啟動三擊
pinMode(4, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
/////////////////////////////////////////////////////////////////
void loop() {
buttonA.loop();//啟動buttonA
buttonB.loop();//啟動buttonB
for (int counter = 0; counter < i_SUM ; counter++) {
digitalWrite(4, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(4, LOW); // turn the LED off by making the voltage LOW
delay(500);
}
i_SUM = 0;
// wait for a second
}
/////////////////////////////////////////////////////////////////
void pressed(Button2& btn) {
Serial.println("pressed");
// i_SUM = 1;
}
void released(Button2& btn) {
Serial.print("released: ");
Serial.println(btn.wasPressedFor());
}
void changed(Button2& btn) {
Serial.println("changed");
}
void click(Button2& btn) {
Serial.println("單擊\n");
i_SUM = 1;
}
void longClickDetected(Button2& btn) {
Serial.println("長按住未放開\n");
}
void longClick(Button2& btn) {
Serial.println("長按住放己放開\n");
}
void doubleClick(Button2& btn) {
Serial.println("雙擊\n");
i_SUM = 2;
}
void tripleClick(Button2& btn) {
Serial.println("三擊\n");
i_SUM = 3;
}
void tap(Button2& btn) {
Serial.println("tap");
}
/////////////////////////////////////////////////////////////////