初始化提交
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* SpecialInput.ino - Example for the OneButtonLibrary library.
|
||||
* This is a sample sketch to show how to use the OneClick library on other input sources than standard digital pins.
|
||||
*
|
||||
* The library internals are explained at
|
||||
* http://www.mathertel.de/Arduino/OneButtonLibrary.aspx
|
||||
*
|
||||
* Setup a test circuit:
|
||||
* * Connect a pushbutton to pin 2 (ButtonPin) and ground.
|
||||
*
|
||||
* The sketch shows how to setup the library and bind the functions (singleClick, doubleClick) to the events.
|
||||
* In the loop function the button.tick function must be called as often as you like.
|
||||
*
|
||||
* * 22.01.2021 created by Matthias Hertel
|
||||
*/
|
||||
|
||||
#include "OneButton.h"
|
||||
|
||||
// This is an example on how to use the OneClick library on other input sources than standard digital pins.
|
||||
// 1. do not use a pin in the initialization of the OneClick library.
|
||||
// 2. pass the input state to the tick function.
|
||||
|
||||
// You can also find how to create an instance in setup and not by declaration.
|
||||
// You can also find how to use inline callback functions.
|
||||
|
||||
#if defined(ARDUINO_AVR_UNO) || defined(ARDUINO_AVR_NANO_EVERY)
|
||||
#define PIN_INPUT 2
|
||||
|
||||
#else if defined(ESP8266)
|
||||
#define PIN_INPUT D3
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
// OneButton instance will be created in setup.
|
||||
OneButton *button;
|
||||
|
||||
void fClicked(void *s)
|
||||
{
|
||||
Serial.print("Click:");
|
||||
Serial.println((char *)s);
|
||||
}
|
||||
|
||||
void setup()
|
||||
{
|
||||
Serial.begin(115200);
|
||||
Serial.println("One Button Example with custom input.");
|
||||
|
||||
// create the OneButton instance without a pin.
|
||||
button = new OneButton();
|
||||
|
||||
// Here is an example on how to use a parameter to the registered function:
|
||||
button->attachClick(fClicked, "me");
|
||||
|
||||
// Here is an example on how to use an inline function:
|
||||
button->attachDoubleClick([]() { Serial.println("DoubleClick"); });
|
||||
|
||||
// setup your own source of input:
|
||||
pinMode(PIN_INPUT, INPUT_PULLUP);
|
||||
|
||||
} // setup()
|
||||
|
||||
void loop()
|
||||
{
|
||||
// read your own source of input:
|
||||
bool isPressed = (digitalRead(PIN_INPUT) == LOW);
|
||||
|
||||
// call tick frequently with current push-state of the input
|
||||
button->tick(isPressed);
|
||||
} // loop()
|
||||
Reference in New Issue
Block a user