#include <Button_SL.hpp>
//////////////////////////////////////////////////
// Global constants and variables
//////////////////////////////////////////////////
constexpr uint8_t BUTTON_PIN1{2};
constexpr uint8_t RELAIS1_PIN{4};
constexpr uint8_t RELAIS2_PIN{6};
using namespace Btn;
ButtonSL btn{BUTTON_PIN1, 5000}; // Long Press is >= 5000 ms
//////////////////////////////////////////////////
// Function forward declaration
//////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
/// @brief Initialize the program.
///
//////////////////////////////////////////////////////////////////////////////
void setup() {
Serial.begin(115200);
Serial.println("Start");
// Initialize Buttons
digitalWrite(RELAIS1_PIN, HIGH);
digitalWrite(RELAIS2_PIN, HIGH);
pinMode(RELAIS1_PIN, OUTPUT);
pinMode(RELAIS2_PIN, OUTPUT);
btn.begin();
btn.setDebounceTime_ms(20); // 30 milliseconds are default
btn.releaseOn(); // Releases button as soon as the time for a long button press has been reached.
}
//////////////////////////////////////////////////////////////////////////////
/// @brief Check Buttons.
///
//////////////////////////////////////////////////////////////////////////////
void loop() {
switch (btn.tick()) {
case ButtonState::shortPressed:
digitalWrite(RELAIS1_PIN, not digitalRead(RELAIS1_PIN));
break;
case ButtonState::longPressed:
digitalWrite(RELAIS2_PIN, not digitalRead(RELAIS2_PIN));
break;
default: break;
}
}
Kamera-Relais:
Kurzer Tastendruck
PC-Relais:
Langer Tastendruck