Problema pulsanti led millis

Questa è la funzione da richiamare ogni secondo:

void updateDisplay() {

  sevseg.setNumber(pellet); //  stampiamo la lettura del sensore a ultrasuoni sul display
  Serial.print(pellet); // stampiamo la lettura del sensore ad ultrasuoni sul pannello di arduino
  Serial.println("cm");

  sevseg.refreshDisplay();

// queste misure possono essere cambiate sostituendo i numeri e metterli a vostro piacere
// modificato come da suggerimento di Arco_500
  if (pellet <= 40) { // accendiamo il primo led se la misura è sotto i 40 cm
    digitalWrite (ledGreen, LOW);
    digitalWrite (ledYellow, HIGH);
    digitalWrite (ledRed, HIGH);
  }

  else if (pellet <= 41 && pellet >= 64) { // tra i 41 e i 64 cm facciamo accendere il secondo led
    digitalWrite (ledGreen, HIGH);
    digitalWrite (ledYellow, LOW);
    digitalWrite (ledRed, HIGH);
  }

  else if (pellet > 65) { //dopo i 65 cm facciamo accendere il terzo led
    digitalWrite (ledGreen, HIGH);
    digitalWrite (ledYellow, HIGH);
    digitalWrite (ledRed, LOW);

  }
}

Qui invece la chiamata di updateDisplay():

if (millis() - timer >= 1000) { //sfruttando la funzione millis facciamo in modo che ogni 1000 ms dal reset della scheda
   timer += 1000; // (o dall'avvio) avvenga una lettura del sensore di distanza
   pellet = sr04.Distance();
   updateDisplay();
 }