Innanzitutto grazie tuxduino per il consiglio sull'indentazione del codice, spero di tenerlo sempre a mente.

Ritornando al mio stupido problema, ma che ahimè non sono riuscito a risolvere.
Ho riflettuto sul consiglio datomi, tonid, ma non riesco a capire come far accendere il led prima di mettere il Millis; mi spiego:
// Il led lampeggia se premo il pulsante
// premendo una seconda volta il pulsante si spegne il led
#define LED 13
#define BUTTON 7
int val = 0;
int vecchio_val = 0;
int stato = 0;
int ledState = LOW;
long previousMillis = 0;
long interval = 1000;
void setup() {
pinMode(LED, OUTPUT);
pinMode(BUTTON, INPUT);
}
void loop() {
val = digitalRead(BUTTON);
if ((val == HIGH) && (vecchio_val == LOW)){
stato = 1 - stato;
delay(15);
}
vecchio_val = val;
if (stato == 1) {
digitalWrite(LED, ledState);
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(LED, ledState);
}
}
else {
digitalWrite(LED, LOW);
}
}
Come potete vedere ho aggiunto il comando, stupidamente penso,
digitalWrite [che è l'unico che conosco per accendere il LED] con la variabile ledState; ho fatto ciò perché aggiungendo digitalWrite (LED, HIGH) [come per accendere il LED] avevo come risultato un normale circuito con tocco di pulsante - led accesso, tocco di pulsante - led spento.
Ho notato il cambiamento, ma ovviamente come ben sapete non è assolutamente ciò di cui avevo bisogno :-/
Mi stimola risolvermi questi piccoli problemi; scusate, ma cerco di apprendere quanto più possibile queste nozioni base!
Grazie ancora per i consigli!