#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
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module