#include <Button_SL.hpp>

constexpr byte PIN_TASTER {4};
constexpr byte PIN_PIR {5};

using namespace Btn;
ButtonSL btn{PIN_TASTER};

void checkButton(ButtonSL &b) {
  if (b.tick() != ButtonState::notPressed) {
    Serial.println("Taster gedrückt");
  }
}

byte checkPIR(byte state) {
  byte isPirActive = digitalRead(PIN_PIR);
  if (state != isPirActive) {
    state = isPirActive;
    switch (isPirActive) {
      case LOW: Serial.println("PIR wieder inaktiv"); break;
      case HIGH: Serial.println("PIR hat ausgelöst. Ist 5 Sekunden aktiv."); break;
      default: break;
    }
  }
  return state;
}

void setup() {
  Serial.begin(115200);
  btn.begin();
  pinMode(PIN_PIR, INPUT);
}

void loop() {
  static byte prevIsPirActive {LOW};
  checkButton(btn);
  prevIsPirActive = checkPIR(prevIsPirActive);
}