Problema con interrupt e accensione led temporizzata

Patrick_M:
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
}

Perfetto. Ora funziona tutto a meraviglia.

Standardoil:
Forse, solo forse, devi dichiarare volatile le variabili che usi nella ISR

Siccome non ho ben capito neanche nella reference dell'interrupt di Arduino cosa sia la variabile ISR, seguendo l'intuito ho impostato volatile l'unica variabile che passa per la funzione che richiama l'interrupt:

 bool volatile state = false;

In ogni caso ora funziona tutto, come già detto, a meraviglia.
Grazie ad entrambi per il vostro tempo.