#include #include #include #include using namespace Combie::Millis; using Taster = Combie::Pin::TasterGND<2>; // Taster zwischen Pin und GND(invertierend) using OutPin = Combie::Pin::OutputPin<13>; // Ausgang (nicht invertierend) using Counter = Combie::Tools::Counter; Counter counter; Taster taster; OutPin outPin; Combie::Timer::EntprellTimer entprell {20_MilliSekunden}; Combie::Tools::FlankenErkennung flankenerkennung; Combie::Timer::FallingEdgeTimer toff {1.5_Sekunden}; // abfallende Flanke wird verzoegert //Combie::Timer::FallingEdgeTimer toff {10_Minuten}; // abfallende Flanke wird verzoegert bool outFlag = false; void setup() { Serial.begin(9600); Serial.println( "Start" ); taster.initPullup(); outPin.init(); counter.onCount( [](Counter &counter) // Lambda Funktion { Serial.print(" count: ");Serial.println( counter ); switch(counter) { case 1 ... 5 : outFlag = true; break ; case 6 : outFlag = false; break ; } } ); } void loop() { counter = flankenerkennung = entprell = taster ; if(outFlag) { outPin = toff = entprell(); }else { outPin = 0; } if(counter >= 6) counter.reStart(); }