Led lampeggiante per 30 secondi

Sto diventando matto, e da questa mattina che faccio prove ma non ho capito come far funzionare il conteggio.
Ho provato con un listato trovato in rete

#define LED 13                // LED collegato al pin digitale 13  
#define BUTTON 7              // pin di input dove è collegato il pulsante  
int val = 0;                  // si userà val per conservare lo stato del pin di input  
int stato = 0;                // ricorda lo stato in cui si trova il led, stato = 0 led spento, stato = 1 led acceso  

void setup() {  
  pinMode(LED, OUTPUT);       // imposta il pin digitale come output  
  pinMode(BUTTON, INPUT);     // imposta il pin digitale come input  
}  

void loop() {  
  val = digitalRead(BUTTON);  // legge il valore dell'input e lo conserva  

  // controlla se è accaduto qualcosa  
  if ((val == HIGH)){  
    stato = 1 - stato;  
    delay(15);                // attesa di 15 millisecondi  
  }   



  if (stato == 1) {  
    digitalWrite(LED, HIGH);  // accende il LED  
    delay(500);              // aspetta un secondo  
    digitalWrite(LED, LOW);   // spegne il LED  
    delay(500); // aspetta un secondo
  }               

  for (int i = 0; i<10; i++);  
  {
    digitalWrite(LED, LOW);   // spegne il LED
  }               
}

niente, mi potete aiutare ?