Bonjour,
J'ai eu le même problème d'affichage. Un clear est efficace, mais même si il est rare, il "choque" un peu les yeux. Voilà ma méthode pour éviter ça (mais il y en a surement plein d'autres).
Il y a d'ailleurs trois problèmes : ne pas faire clignoter, ne pas devoir tout réécrire après un clear, et garder les nombres calés à droite. C'est à dire que les unités sont toujours au même endroit (ce qui est beaucoup plus lisible et agréable selon moi, mais les gouts et les couleurs... :-)
En reprenant votre code, et en imaginant que "OnTime" vaut entre 0 et 100 en entiers (pas de virgules, pas de "-", etc.), je ferais (à vérifier si je n'ai pas fait de faute de syntaxe) :
lcd.setCursor(23, 1);
if(OnTime < 100) lcd.print(" ");
if(OnTime < 10) lcd.print(" ");
lcd.print(OnTime);
En gros, si c'est 100, on affiche 100. Si c'est moins que 100, on ajoute un espace qui va effacer l'éventuel "1" et qui va mettre un espace à la place des centaines pour aligner le reste. Puis, si c'est moins de 10, on ajoute un second espace qui va effacer l'éventuelle dizaine précédente et aligner le dernier chiffre.
C'est basique, ça ne marche pas pour les nombres négatifs (à gérer à part), mais pour votre cas, ça semble convenir, non ?
En espérant que ça vous soit utile.
Frédéric / Strasbourg