Aiuto programma semplice con bottone e LEDs

Ciao a tutti, mi sto "scervellando" nel capire dove sbaglio in questo programma, la verifica del programma non mi da nessun errore di sintassi. Nonostante tutto ciò il programma esegue il ciclo dell'else senza che io prema il bottone di avvio ciclo. Pensando di sbagliare a collegare il bottone, anche staccandolo dalla breadboard non cambia nulla.

Allego il codice in questione:

int Verde = 3;
int Giallo = 4;
int Rosso = 5;
int Lampeggio = 2;
int Start = 12;

void setup() {
  
pinMode ( Verde, OUTPUT);
pinMode ( Giallo, OUTPUT);
pinMode ( Rosso, OUTPUT);
pinMode ( Lampeggio, OUTPUT);
pinMode (Start, INPUT); 
 }

void loop() {
  
if (digitalRead(Start)==LOW) {

digitalWrite (Verde, LOW);
digitalWrite (Giallo, LOW);
digitalWrite (Rosso, LOW);
digitalWrite (Lampeggio, LOW);}

else (digitalRead(Start)==HIGH); {
digitalWrite (Rosso, HIGH);
delay (8000);
digitalWrite (Rosso, LOW);
delay (100);
digitalWrite (Giallo, HIGH);
delay (8000);
digitalWrite (Lampeggio, HIGH);
delay (5000);
digitalWrite (Lampeggio, LOW);
digitalWrite (Giallo, LOW);
delay (100);
digitalWrite (Verde, HIGH);
delay (8000);
digitalWrite (Verde, LOW);}


 }

Potete darmi una mano?

Qui un errore di sintassi, accettata dal compilatore else (digitalRead(Start)==HIGH); { }

Per il compilatore è come se tu avessi scritto; else (digitalRead(Start)==HIGH); // qui finisce l'else perchè ci sono punto e virgola { // blocco fuori da else eseguito sempre (visto che non è nell'else) }

Grazie nid69ita, quindi come dovrei cambiare la funzione else per una sintassi corretta?

ciao Alfablor,

come evidenziato da nid69ita togliendo il ";" dall'else...dopo la ")"

cambierei anche else con else if.

Perfetto. Grazie mille.. In effetti, togliendo il ";" e mantenendo else mi dava errore. Mettendo else if tutto ok!

Alla prossima ragazzi..!

Avevo dimenticato di dirti la soluzione. :slight_smile:

Nell’IDE usa CTRL+T che indentazione automatica. Aiuta a vedere le graffe

Puoi anche togliere la condizione al ramo else, intanto se non è HIGH è per forza LOW.