Accendere pin dopo tot secondi di un evento

Intanto questo è il codice che ho scritto.
Se qualcuno ha voglia di darci un'occhiata.... :stuck_out_tongue:

byte x = 8;
byte y = 13;
byte xVal = LOW; 
byte yVal = LOW;

boolean xAccesa = false;
boolean appo = false;
unsigned long interval=200000;
unsigned long tempoSpenta;

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  Serial.println("Pronti");

  pinMode(x, INPUT); 
  pinMode(y, OUTPUT); 
  digitalWrite(y, LOW); // Spengo il led L sulla scheda
}

void loop()
{  
  xVal = digitalRead(x);  // Leggo lo stato del pin x, finchè è off non faccio nulla.
  xAccesa=xVal;

  // Quando è on blocco l'esecuzione del loop finchè non diventa off
  while(xAccesa){
    yVal=LOW;
    digitalWrite(y, yVal);

    xVal = digitalRead(x);  // read input value
    xAccesa=xVal;
    appo=true;
    Serial.println("qui");
  }
  
  // Uscito dal loop prendo il tempo di uscita
  tempoSpenta=millis();

  if ( appo ){
	// Se è entrato nel while precedente vuol dire che c'è stato un impulso
    appo=false;

	// Attendo per vedere se c'è un secondo impulso
    while(millis()<(tempoSpenta + interval)){
      xVal = digitalRead(x);  // read input value
      xAccesa=xVal;
      Serial.println("qui1");
      if ( xAccesa ){
        yVal=LOW;
        break;
      }
      else{
        yVal=HIGH; 
      }
    }
  }

  digitalWrite(y, yVal);
}