diff --git a/seilbahn_basics/seilbahn_basics.ino b/seilbahn_basics/seilbahn_basics.ino index dda0fa1..7daed76 100644 --- a/seilbahn_basics/seilbahn_basics.ino +++ b/seilbahn_basics/seilbahn_basics.ino @@ -35,6 +35,12 @@ bool currentButtonStateFahrgastbetrieb = false; bool buttonStateQuitBetrieb = false; bool currentButtonStateQuitBetrieb = false; +bool buttonStateVorwaerts = false; +bool currentButtonStateVorwaerts = false; + +bool buttonStateRueckwaerts = false; +bool currentButtonStateRueckwaerts = false; + // Anlagenzustände enum { @@ -109,18 +115,56 @@ void nothaltButtonAbfragen() // Button Code [...] } +//FERTIG void vorwaertsButtonAbfragen() { - // Button Code [...] + // ========== Start Button abfragen + // Taster abfragen und aktuellen Zustand zwischenspeichern + currentButtonStateVorwaerts = digitalRead(KNOPF_START_BETRIEB) == LOW; + // Aktuellen Zustand mit vorherigem vergleichen + if (currentButtonStateVorwaerts && !buttonStateVorwaerts) + { + // Warten zum entprellen + delay(20); + // Taster abfragen und aktuellen Zustand zwischenspeichern + currentButtonStateVorwaerts = digitalRead(KNOPF_START_BETRIEB) == LOW; + // Prüfen ob immernoch gedrückt + if (currentButtonStateVorwaerts == LOW) + { + // Knopf gedrückt => Code ausführen + // ============================================================ fahrtrichtung = VORWAERTS_QUITTIEREN; - // Button Code [...] + // ============================================================ + // Speichern des ButtonStates als Vergleichswert für den nächsten Durchlauf + buttonStateVorwaerts = currentButtonStateVorwaerts; + } + } } +//FERTIG void rueckwaertsButtonAbfragen() { - // Button Code [...] + // ========== Start Button abfragen + // Taster abfragen und aktuellen Zustand zwischenspeichern + currentButtonStateRueckwaerts = digitalRead(KNOPF_START_BETRIEB) == LOW; + // Aktuellen Zustand mit vorherigem vergleichen + if (currentButtonStateRueckwaerts && !buttonStateRueckwaerts) + { + // Warten zum entprellen + delay(20); + // Taster abfragen und aktuellen Zustand zwischenspeichern + currentButtonStateRueckwaerts = digitalRead(KNOPF_START_BETRIEB) == LOW; + // Prüfen ob immernoch gedrückt + if (currentButtonStateRueckwaerts == LOW) + { + // Knopf gedrückt => Code ausführen + // ============================================================ fahrtrichtung = RUECKWAERTS_QUITTIEREN; - // Button Code [...] + // ============================================================ + // Speichern des ButtonStates als Vergleichswert für den nächsten Durchlauf + buttonStateRueckwaerts = currentButtonStateRueckwaerts; + } + } } void setup() {