Cronometro particolare x gare di pattinaggio

ecco quello che ho scritto, ma sicuramente ho fatto un'errore perchè mi segnala un'anomalia.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 20 chars and 4 line display

#define BUTTONSTART 11 //pulsante di start 
#define BUTTON1 A0 //pulsante stop corsia 1
#define BUTTON2 A1 //pulsante stop corsia 2
#define BUTTON3 A2 //pulsante stop corsia 3
#define BUTTON4 A3 //pulsante stop corsia 4
#define LEDVERDE1 2 //led start corsia 1 
#define LEDVERDE2 3 //led start corsia 2 
#define LEDVERDE3 4 //led start corsia 3 
#define LEDVERDE4 5 //led start corsia 4   
#define LEDROSSO1 6 //led stop corsia 1    
#define LEDROSSO2 7 //led stop corsia 2    
#define LEDROSSO3 8 //led stop corsia 3    
#define LEDROSSO4 9 //led stop corsia 4    

int val;
bool statoCorsia1; //flag corsia1   
bool statoCorsia2; //flag corsia2   
bool statoCorsia3; //flag corsia3   
bool statoCorsia4; //flag corsia4   

void setup()
{
 startTime = millis();
 corsia1Time = millis();
 corsia2Time = millis();
 corsia3Time = millis();
 corsia4Time = millis();
 time1 = corsiaTime1 – startTime;
 time2 = corsiaTime2 – startTime;
 time3 = corsiaTime3 – startTime;
 time4 = corsiaTime4 – startTime;
 pinMode(BUTTON1, INPUT_PULLUP);     
 pinMode(BUTTON2, INPUT_PULLUP);     
 pinMode(BUTTON3, INPUT_PULLUP);     
 pinMode(BUTTON4, INPUT_PULLUP);     
 pinMode(BUTTONSTART, INPUT_PULLUP); 
 pinMode(LEDVERDE1, OUTPUT);         
 pinMode(LEDVERDE2, OUTPUT);         
 pinMode(LEDVERDE3, OUTPUT);         
 pinMode(LEDVERDE4, OUTPUT);         
 pinMode(LEDROSSO1, OUTPUT);         
 pinMode(LEDROSSO2, OUTPUT);         
 pinMode(LEDROSSO3, OUTPUT);         
 pinMode(LEDROSSO4, OUTPUT);         

 digitalWrite(LEDVERDE1, LOW);       
 digitalWrite(LEDVERDE2, LOW);       
 digitalWrite(LEDVERDE3, LOW);       
 digitalWrite(LEDVERDE4, LOW);       
 digitalWrite(LEDROSSO1, LOW);       
 digitalWrite(LEDROSSO2, LOW);       
 digitalWrite(LEDROSSO3, LOW);       
 digitalWrite(LEDROSSO4, LOW);       

 lcd.init();                      // initialize the lcd 

 // Print a message to the LCD.
 lcd.backlight();
 lcd.setCursor(0,0);
 lcd.print("CORSIA 1:");
 lcd.setCursor(0,1);
 lcd.print("CORSIA 2:");
 lcd.setCursor(0,2);
 lcd.print("CORSIA 3:");
 lcd.setCursor(0,3);
 lcd.print("CORSIA 4:");
 
//inizializza flag corsie      
 statoCorsia1 = false;         
 statoCorsia2 = false;         
 statoCorsia3 = false;         
 statoCorsia4 = false;         
}

void loop()
{

 for (;;) {  //inizio loop infinita scansione corsie 

   val = digitalRead(BUTTON1); 
   if (val == HIGH) {         //il pulsante è rilasciato
     lcd.setCursor(9,0);
     lcd.print("PRONTA    ");
     digitalWrite(LEDVERDE1, HIGH); 
     statoCorsia1 = true; 
   }
   if (val == LOW) {          //il pulsante è premuto
     lcd.setCursor(9,0);
     lcd.print("NON ATTIVA");
     digitalWrite(LEDROSSO1, LOW); 
     statoCorsia1 = false;         
   }
   val = digitalRead(BUTTON2); 
   if (val == HIGH) {         //il pulsante è rilasciato
     lcd.setCursor(9,1);
     lcd.print("PRONTA    ");
     digitalWrite(LEDVERDE2, HIGH); 
     statoCorsia2 = true;           
   }
   if (val == LOW) {          //il pulsante è premuto
     lcd.setCursor(9,1);
     lcd.print("NON ATTIVA");
     digitalWrite(LEDROSSO2, LOW); 
     statoCorsia2 = false;         

   }
   val = digitalRead(BUTTON3); 
   if (val == HIGH) {         //il pulsante è rilasciato
     lcd.setCursor(9,2);
     lcd.print("PRONTA    ");
     digitalWrite(LEDVERDE3, HIGH); 
     statoCorsia3 = true;           
   }
   if (val == LOW) {          //il pulsante è premuto
     lcd.setCursor(9,2);
     lcd.print("NON ATTIVA");
     digitalWrite(LEDROSSO3, LOW); 
     statoCorsia3 = false;         

   }
   val = digitalRead(BUTTON4); 
   if (val == HIGH) {         //il pulsante è rilasciato
     lcd.setCursor(9,3);
     lcd.print("PRONTA    ");
     digitalWrite(LEDVERDE4, HIGH); 
     statoCorsia4 = true;           
   }
   if (val == LOW) {          //il pulsante è premuto
     lcd.setCursor(9,3);
     lcd.print("NON ATTIVA");
     digitalWrite(LEDROSSO4, LOW); 
     statoCorsia4 = false;         

   }
   val = digitalRead(BUTTONSTART); 
   if (val == LOW) {               
     //è stato premuto il pulsante di start, si esce dalla prima loop infinita
     break;                        
   }
 }  //FINE LOOP INFINITA SCANSIONE CORSIE   
}

ciao e grazie

Ivan