così secondo me funziona
bool state = false;
unsigned long previousMillis = 0;
const long interval = 5000;
//unsigned long currentMillis; non serve
const byte led = 8;
void setup() {
attachInterrupt(0, interruptLed, RISING);
pinMode(led, OUTPUT);
}
void loop() {
if (state) {
state = false;
previousMillis = millis();
//lcd.backlight();
digitalWrite(led, HIGH);
}
if (millis() - previousMillis >= interval) {
digitalWrite(led, LOW);
}
}
void interruptLed() {
state = true; // meglio così altrimenti hai problemi di debounce
}