38 lines
1.2 KiB
C++
38 lines
1.2 KiB
C++
|
|
|
|
// -------- clickButton.h --------
|
|
#include <Arduino.h>
|
|
|
|
#define CLICKBTN_PULLUP HIGH
|
|
|
|
class ClickButton
|
|
{
|
|
public:
|
|
ClickButton(int buttonPin);
|
|
ClickButton(int buttonPin, bool active);
|
|
ClickButton(int buttonPin, bool active, bool internalPullup);
|
|
void Update();
|
|
int clicks; // button click counts to return
|
|
bool depressed; // the currently debounced button (press) state (presumably it is not sad :)
|
|
long debounceTime;
|
|
long multiclickTime;
|
|
long longClickTime;
|
|
bool SingleClick();
|
|
bool DoubleClick();
|
|
bool TripleClick();
|
|
bool SingleLongClick();
|
|
bool DoubleLongClick();
|
|
bool TripleLongClick();
|
|
bool buttoncheck(uint8_t num);
|
|
private:
|
|
int _pin; // Arduino pin connected to the button
|
|
bool _activeHigh; // Type of button: Active-low = 0 or active-high = 1
|
|
bool _btnState; // Current appearant button state
|
|
bool _lastState; // previous button reading
|
|
int _clickCount; // Number of button clicks within multiclickTime milliseconds
|
|
long _lastBounceTime; // the last time the button input pin was toggled, due to noise or a press
|
|
int function = 0;
|
|
};
|
|
|
|
// -------- end clickButton.h --------
|