oui, comme dit précédemment si bpPresseAction(b); est suffisamment long alors il n'y a pas de souci.
Comme vous le dites, dans ce cas précis ce n'est pas nécessaire puisque s'il n'y a aucun moteur attaché, appeler plusieurs fois la fonction n'est pas un pb (ça ne fait rien) et s'il y en a au moins un on aura des attentes actives suffisamment longues pour gommer les rebonds d'appui. (pas sûr que le second delay(motEtatOnTemps); soit nécessaire, j'ai cru comprendre que le premier c'était le temps que l'aiguillage se déplace et ensuite on éteint la commande)
L'objectif est juste pédagogique puisque Jacques débute, mentionner qu'il faut tenir compte des rebonds dans les deux sens (cf sa remarque d'ailleurs). Vous l'aviez explicité pour le relâchement, l'idée était de rendre visible ce besoin aussi lors de l'appui et une façon générale simple de faire est de rajouter ce delay(20); avant et après l'attente active (voire delay(15); ça ne m'a jamais joué de mauvais tour avec mes boutons)
L'autre option qui me semble était l'intention inachevée de Jacques au départ (d'après le code posté) serait d'utiliser la bibliothèque de Thomas Ouellet Fredericks (bounce) pour gérer les boutons (Personnellement je préfère la biblio de @bricoleau du forum arduino qui a l'avantage d'être compacte et en français ou alors celle de Matthias Hertel (OneButton)).
==> ça permet de cacher toute cette complexité et de se concentrer sur le coeur de code, ce qui est sympathique quand on débute.
on a l'embarras du choix !
Partager