lo sò che è da un pò che non mi faccio vivo ma la vita i figli... La bambina ha vomitato il gatto puzza e la moglie... Vabbè... HAhHAHhaha!
Ho realizzato un'ovale da mettere in vetrina del nezozio e volevo mettere arduino come temporizzatore, pensavo che ci vuole una cavolata...
Invece crisi nera non riesco a fra funzionare lo sketch!
Il funzionamento dovrebbe una volta data corrente ad arduino , 1 far lampeggiare 2 led su C.Sant'Andrea o segnale carino che sto realizzando, dopo 3 min spegnersi e far uscire il treno e una volta rientrato in galleria premere il tasto, stop treno riaccendere il segnale e dopo 3 min ripartire...
Il mio problema nello sketch sotto è nella funzione del bottone perchè è programmato per essere premuto per la funzione start.
Ringrazio tutti coloro che hanno un pò di tempo da dedicarmi e Diego ha già l'anteprima del tipo di locomotiva che impiegherò...

Posto tutto giurin giuretta Marco.
// descrizione: Partenza Treno, si spegne la croce di S.andrea, il treno rientra in galleria preme un contatto e si interrompe la corsa al treno,
si riaccende la Croce di S.Andrea e dopo 3 min riparte il treno
const int BUTTON = 2; // pin di input a cui è collegato il pulsante
const int LED_A = 13; // led A croce di S.Andrea
const int LED_B = 11; // led B croce di S.Andrea
const int TRENO = 10; // Treno collegato al pin digitale 13
// Variabili globali (tutti interi)
int statoButton = 0; // stato del pulsante (inizialmente non premuto)
int lastStatoButton = 0; // ultimo stato del pulsante (per ora non premuto)
int countButton = 0; // Conteggio del bottone
// Avvio dell'applicazione
void setup()
{
pinMode(LEDA, OUTPUT); // imposta il pin digitale come output
pinMode(LEDB, OUTPUT);
pinMode(TRENO, OUTPUT);
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}
// Avvio del loop
void loop()
{
// Verifico se l'utente ha premuto il bottone ???
if(digitalRead(BUTTON))
{
// Aspetto 15ms per far alzare il dito all'utente
delay(15);
// Cambio l'ultimo stato del bottone
if(lastStatoButton==0) lastStatoButton=1;
else lastStatoButton=0;
// Aumento il count del bottone
if(countButton<=3) countButton=countButton+1;
else countButton=0;
}
// In base allo stato del bottone scelgo l'azione del led
switch (countButton)
{
// Led lampeggia ogni mezzo secondo
case 1:
digitalWrite(LEDA, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LEDB, LOW); // spegne il LED
delay(500); // aspetta un secondo
digitalWrite(LEDB, HIGH); // accende il LED
delay(500); // aspetta un secondo
digitalWrite(LEDA, LOW); // spegne il LED
delay(30000);
digitalWrite(LEDA, LOW);
digitalWrite(LEDB, LOW);
digitalWrite(TRENO, HIGH); // dopo 3 min parte il treno
break;
// quando il treno arriva in galleria c'è lo switch o tasto ma la funzione dovrebbe portarmi il riavvio dell loop come faccio???
}
}