const uint8_t pinButton1 = 5;
const uint8_t pinButton2 = 4;
const uint8_t LED = 13;
const uint32_t timer1 = 5000;
const uint32_t timer2 = 10000;
void setup()
{
Serial.begin( 115200 );
pinMode( LED, OUTPUT );
pinMode( pinButton1, INPUT_PULLUP );
pinMode( pinButton2, INPUT_PULLUP );
}
void loop()
{
static uint32_t timerStart = 0;
static uint32_t timerDuration = 0;
if ( timerDuration == 0 )
{
if ( digitalRead( pinButton1 ) == LOW )
{
timerDuration = timer1;
}
else if ( digitalRead( pinButton2 ) == LOW )
{
timerDuration = timer2;
}
if ( timerDuration != 0 )
{
digitalWrite( LED, HIGH );
timerStart = millis();
Serial.print( "LED on for " );
Serial.print( timerDuration / 1000 );
Serial.println( " seconds" );
}
}
else if ( millis() - timerStart >= timerDuration )
{
digitalWrite( LED, LOW );
timerDuration = 0;
Serial.println( "LED off" );
}
}