Così funziona, anche se non è proprio corretto, il pulsante può prendere dei 'colpi'.... e ricorda di mettere sempre una resistenza da 10k tra il pin pulsante e gnd (per mantenere il pin allo stato LOW).
#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
byte i=0;
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;
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
i+=1; //incremento i
if(i==30){stato=0;i=0;} // dopo 30 cicli on-off smette di lampeggiare || azzero i
}
}