Hello Antoine,
ah ben je suis heureux que ça marche ! Un peu surpris car sans bien savoir ce que ça fait ça me semble miraculeux... mais finalement pas surpris car je n'avais en fait pas besoin de le savoir !
Car c'est TON code et rien que ton code, je n'ai rien fait d'autre que l'organiser différemment.
Avec deux N.B. :
- dans le zip joint j'ai ajouté, juste pour la bonne forme, un "destructeur" car utiliser "NEW" implique de l'allocation dynamique de mémoire, qu'il faut absolument libérer si nécessaire sinon à force d'allouer sans libérer on crée de la "fuite de mémoire". Ça n'est pas le cas dans le présent sketch, on alloue une fois dans le setup et tout se libère automatiquement avec la fermeture du programme. Mais je ne sais pas si tu ne vas pas intégrer ce bout de sketch dans un autre, ni alors, comment, d'où l'avertissement en commentaire.
- et à cause de cette allocation dynamique qui implique des pointeurs pour la localiser, la fonction "switch" de ton code d'origine ne peut pas être utilisée (je saurai peut-être un jour expliquer pourquoi !), voilà pourquoi elle est remplacée par trois "ifs"
C'était vraiment un cas d'école ! Idéal pour te permettre de voir très vite comment passer de ta version à celle-ci car encore une fois, c'est ton code dans les deux cas.
Amicalement
Philippe