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

Arf je ne voudrais pas faire partir notre ami dans une direction opposée à celle du tuto sur les machines à état.

De mon côté, si je reprends le cas du RTC, l'idée est de mettre l'heure courante dans une variable à disposition de toute fonction du programme qui en aurait besoin.
Car il n'est pas nécessaire de passer par une communication sur le bus I2C avec le RTC, pour aller lire l'heure 10 000 fois par seconde.

Quelque chose de tout simple, par exemple :

DateTime now;
unsigned long millis_RTC = 0;


void setup()
{
...
  now = RTC.now();
}


void loop
{
  gererRTC();
  ...
}

void gererRTC()
{
  if (millis() - millis_RTC >= 1000)
  {
    now = RTC.now();
    millis_RTC = millis();
  }
}

Dans mon approche, ceci permet de poser une fois pour toutes la communication avec le RTC, de manière isolée par rapport au reste du programme.

Les autres parties du programme peuvent utiliser à tout moment et sans se poser de question le contenu de la variable now.

Et dans les autres parties du programme, il y a la "machine à états", qui évalue les passages d'un état à un autre, en utilisant notamment la valeur de l'heure courante.

Dois-je comprendre que tu mettrais tout dans une logique de machine à états, y compris le faire d'aller lire le RTC une fois par seconde?