Pas vraiment une vrai critique, car je n'ai pas pris le temps d'analyser.
Mais ton code parait fonctionnel et relativement claire, je ne vois pas pourquoi le changer ![]()
On pourrait en cherchant la petite bête lui reprocher de faire X digitalWrite, alors qu'il en faut seulement 2*nb Click, je crois.
Et comme dans le code qu'a proposé @jpbbricole, ne pas s'occuper du temps de démarrage de la première salve, mais uniquement du temps du changement d'état.