int pin = A0;
int led = 12;
void setup()
{
pinMode(pin, INPUT_PULLUP);
pinMode(led, OUTPUT);
}
long offAt = 0;
void loop()
{
if( (digitalRead(led) == LOW ) && (digitalRead(pin) == LOW) ) //if LED is off and button is pressed [low because it has pullup resistor]
{
digitalWrite(led, HIGH);
offAt = millis() + 5000; //store var of now + 5 seconds
}
if(digitalRead(led) == HIGH) //if led is on
{
if(millis() >= offAt) //see if it's time to turn off LED
{
digitalWrite(led, LOW); //it's time. this also re-enables the button
}
}
}