Problème d'affichage de l'heure avec machine à état

Bonjour à tous,

tu fais simplement now = RTC.now(); avant le if (now.hour() ...

j'ai testé mais même problème, pas de click donc pas de réactualisation de l'heure.
j'ai également refait ma fonction Actu_heurs() avec now = RTC.now(); que j'appelé depuis ma machine à état... même problème.
Ce Simpleclick me désespère !!!

Je reposte mon code complet au cas ou!

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

LiquidCrystal_I2C lcd(0x27, 20, 4);  // Déclaration type ecran
RTC_DS1307 RTC;

  const byte buttonPin = 3;          // notre bouton poussoir sur pin 4
  OneButton button(buttonPin, true); // true pour le mettre en INPUT_PULLUP
  const byte pompe=4;                // relais sur la pin 4 de l'arduino
  const int ledPompeM=5;             // Led Clignotement Pompe marche sur pin 5
  const byte ledMarche=6;            // Led Marche Système sur pin 6
  int ledState = LOW;



// initialistaion millis pour clignotement LED
  unsigned long previousMillis = 0;        
  const long interval = 1000;     

// Fonction Pompe ON Forcé -----------------------------------------------------------------------
void PompeON_Force()
{
    digitalWrite (pompe, HIGH); // Pompe ON
    lcd.setCursor(0, 1);
    lcd.print("---- MODE FORCE ---");
    lcd.setCursor(0, 2);
    lcd.print("      POMPE ON      ");
}


// Fonction Pompe OFF Forcé ----------------------------------------------------------------------
void PompeOFF_Force()
{
    digitalWrite (pompe, LOW); // Pompe ON
    lcd.setCursor(0, 1);
    lcd.print("---- MODE FORCE ---");
    lcd.setCursor(0, 2);
    lcd.print("      POMPE OFF     ");
  }
  

// Fonction Pompe OFF ---------------------------------------------------------------------- 
void PompeOFF()
{
    digitalWrite (pompe, LOW); // Pompe OFF
    lcd.setCursor(0,1);
    lcd.print("---- MODE AUTO: ----");
    lcd.setCursor(10,2);
    lcd.print(" POMPE OFF");
}

// Fonction Pompe OFF ---------------------------------------------------------------------- 
void PompeON()
{
    digitalWrite (pompe, HIGH); // Pompe ON
    lcd.setCursor(0,1);
    lcd.print("---- MODE AUTO: ----");
  }

// Fonction Cligotement LED ---------------------------------------------------------------------- 
void Cligno_LED()
 {
   unsigned long currentMillis = millis();
   if (currentMillis - previousMillis >= interval) {
     previousMillis = currentMillis;
     if (ledState == LOW) {
       ledState = HIGH;
    lcd.setCursor(10,2);
    lcd.print(" POMPE ON "); 
     } else {
       ledState = LOW;
    lcd.setCursor(11,2);
    lcd.print("         ");
     }
    digitalWrite(ledPompeM, ledState);
  }
 }
// Fonction LED OFF---------------------------------------------------------------------- 
void LED_OFF()
{
  digitalWrite (ledPompeM, LOW);
}
// Fonction Acttualisation de l'heure----------------------------------------------------
//void Actu_heure(){
 // DateTime now = RTC.now();
//}

// Machine à états-----------------------------------------------------------------------
 enum {programme, pompe_ON, pompe_OFF} etatCourant; // la liste des états possible de notre système
 
 void simpleclick(){
  DateTime now = RTC.now();

  switch (etatCourant) {
    
    case programme: 

    Serial.println("mode programme");
      now = RTC.now();
      if(now.hour() == 9 && now.minute() <= 30) {   
      PompeON();
      Cligno_LED();
      lcd.setCursor(0,2);
      lcd.print(" 9h->9h30 ");
    }
    if(now.hour() == 9 && now.minute() > 30) {   
      PompeOFF();
      LED_OFF();
      lcd.setCursor(0,2);
      lcd.print("9h30->10h ");
    }
    if(now.hour() == 10 && now.minute() <= 30) {   
      PompeON();
      Cligno_LED();
      lcd.setCursor(0,2);
      lcd.print("10h->10h30");
    }
...
    }
   if(now.hour() == 17 || now.hour() == 18 || now.hour() == 19 || now.hour() == 20) {   
      PompeON();
      Cligno_LED();
      lcd.setCursor(0,2);
      lcd.print(" 17h->21h ");
    }
   if(now.hour() == 21 || now.hour() == 22 || now.hour() == 23 || now.hour() == 00 || now.hour() == 1 || now.hour() == 2 || now.hour() == 3 || now.hour() == 4 || now.hour() == 5 || now.hour() == 6 || now.hour() == 7 || now.hour() == 8) {   
      PompeOFF();
      LED_OFF();
      lcd.setCursor(0,2);
      lcd.print(" 21h->9h  ");
    }
    etatCourant = pompe_ON;
    break;
    
  case pompe_ON:
  Serial.println("pompe ON Forcé");
    PompeON_Force();
    etatCourant = pompe_OFF;
    break;
    
   case pompe_OFF: 
   Serial.println("pompe OFF Forcé");
    PompeOFF_Force();
    etatCourant = programme;
    break;
  }
}
 void setup(){
    pinMode(pompe, OUTPUT); 
    pinMode(ledPompeM, OUTPUT);
    pinMode(ledMarche, OUTPUT);
    digitalWrite (pompe, LOW);
    digitalWrite (ledMarche, HIGH);
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();
    button.attachClick(simpleclick);  // On attache la fonction simpleClick() comme callBack
    simpleclick();
    etatCourant = programme;


  //RTC.adjust(DateTime(__DATE__, __TIME__));
  
//Initialisation du LCD---------------------------------------------
  lcd.init();
  lcd.cursor_on();
  lcd.blink_on();
  lcd.backlight();
  lcd.setCursor(0, 0);
 }
 
void loop(){
 //Affichage de l'heure
  DateTime now = RTC.now();
  button.tick();
  //Actu_heure();
  //Cligno_LED();
  //if (etatCourant = programme) {
  //  Cligno_LED();
  //}
 // else {
    
 // }
 // Cligno_LED();
 //Affichage HEURE ------------------------------------------------------ 
   lcd.setCursor(12, 0); 
   lcd.print(now.hour()); 
   lcd.print(":"); 
   if (now.minute() < 10) { 
     lcd.print("0"); 
   } 
   lcd.print(now.minute()); 
   lcd.print(":"); 
   if (now.second() < 10) { 
     lcd.print("0"); 
   } 
   lcd.print(now.second());
   
 //Affichage DATE ------------------------------------------------------ 
   lcd.setCursor(0, 0);
   if (now.day() < 10) { 
     lcd.print("0");
   }   
   lcd.print(now.day());  
   lcd.print(" ");  
  
   switch (now.month()) { 
   case 1: 
     lcd.print("JAN"); 
     break; 
...
     lcd.print("DEC"); 
     break; 
   } 
   lcd.print(" ");  
   lcd.print(now.year());  
  
   lcd.cursor_off();
   lcd.blink_off();

  
 }