One button library long press

Hi,

I am using one button library function for project.

I want to use long press function for two purpose.

  1. Some function execute by pressing long press less than 5 sec
  2. Some function execute by pressing long press greater than 5 sec

Please help to do this?

Please post details of of exactly which button library that you ae using. How was it installed ? Does it have any examples ? What have you tried ?

I'm using one button arduino library

I'm using encoder as a input.

used following program fo

/*
This is a sample sketch to show how to use the OneButtonLibrary
to detect click events on 2 buttons in parallel.
The library internals are explained at
Arduino OneButton Library

Setup a test circuit:

  • Connect a pushbutton to pin A1 (ButtonPin) and ground.
  • Connect a pushbutton to pin A2 (ButtonPin) and ground.
  • The Serial interface is used for output the detected button events.

The Sketch shows how to setup the library and bind 2 buttons to their functions.
In the loop function the button1.tick and button2.tick functions have to be called as often as you like.
*/

// 01.03.2014 created by Matthias Hertel
// ... and working.

/* Sample output:

Starting TwoButtons...
Button 1 click.
Button 2 click.
Button 1 doubleclick.
Button 2 doubleclick.
Button 1 longPress start
Button 1 longPress...
Button 1 longPress...
Button 1 longPress...
Button 1 longPress stop
Button 2 longPress start
Button 2 longPress...
Button 2 longPress...
Button 2 longPress stop

*/

#include "OneButton.h"

// Setup a new OneButton on pin A1.
OneButton button1(A1, true);

// setup code here, to run once:
void setup() {
// Setup the Serial port. see if(Serial) - Arduino Reference
Serial.begin(115200);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}

// link the button 1 functions.
button1.attachClick(click1);
button1.attachDoubleClick(doubleclick1);
button1.attachLongPressStart(longPressStart1);
button1.attachLongPressStop(longPressStop1);
button1.attachDuringLongPress(longPress1);

} // setup

// main code here, to run repeatedly:
void loop() {
// keep watching the push buttons:
button1.tick();

// You can implement other code in here or just wait a while
delay(10);
} // loop

// ----- button 1 callback functions

// This function will be called when the button1 was pressed 1 time (and no 2. button press followed).
void click1() {
Serial.println("Button 1 click.");
} // click1

// This function will be called when the button1 was pressed 2 times in a short timeframe.
void doubleclick1() {
Serial.println("Button 1 doubleclick.");
} // doubleclick1

// This function will be called once, when the button1 is pressed for a long time.
void longPressStart1() {
Serial.println("Button 1 longPress start");
} // longPressStart1

// This function will be called often, while the button1 is pressed for a long time.
void longPress1() {
Serial.println("Button 1 longPress...");
} // longPress1

// This function will be called once, when the button1 is released after beeing pressed for a long time.
void longPressStop1() {
Serial.println("Button 1 longPress stop");
} // longPressStop1

// End

Please follow the advice given in the link below when posting code. Use code tags (the </> icon above the compose window) to make it easier to read and copy for examination

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.