Au contraire ces lignes dans le setup ne sont elles pas un peu normales ?
Le setup est la fonction d’initialisation.
Le setup est une fonction qui ne peut s’exécuter qu’une seule fois au démarrage du micro.
Quand a la rapidité de la bibliothèque one Button , que je n’utilise pas donc que je ne connais pas bien, il faut être conscient qu’une bibliothèque qui couvre de nombreux cas, dont un nombre non négligeable de cas non utilisés par une utilisation spécifique, a de grand risques d’etre plus lente qu’un code "au petits oignons”.
Sur des micro avr (uno et nano classiques) la fonction digitalWrite() est dans ce cas : elle gère tellement de cas d’erreurs possibles qu’elle est 30 fois plus lente qu’une écriture directe comme le fait digitalWriteFast().
Il y a deux élements importants à prendre en compte:
1/ la bibliothèque évalue ce qu'il se passe uniquement quand vous appelez tick() sur le bouton. Si vous ne le faites pas souvent parce que votre code est rempli de delay() c'est un souci.
2/ c'est à vous de définir ce qu'est un double click. Le GitHub de la bibliothèque explique
Note: Attaching a double click will increase the delay for detecting a single click. If a double click event is not attached, the library will assume a valid single click after one click duration, otherwise it must wait for the double click timeout to pass. This is because a single click callback must not to be triggered in case of a double click event.
Function
Default
Description
setDebounceMs(int)
50 msec
Period of time in which to ignore additional level changes.
setClickMs(int)
400 msec
Timeout used to distinguish single clicks from double clicks.
setPressMs(int)
800 msec
Duration to hold a button to trigger a long press.
You may change these default values but be aware that when you specify too short times it is hard to click twice or you will create a long press instead of a click.
➜ si vous postez votre code on pourra mieux se rendre compte de ce que vous faites... Là on est un peu dans le brouillard et on joue aux devinettes....
PS/ j'ai sorti ce fil du tuto car c'est trop spécifique et c'est une question plus générale qui mérite son fil de discussion.
J'ai voulu tester l'exemple du tuto.
J'ai câblé comme indiqué et j'ai fait un copié/collé du code qui était dans le tuto.
Je me demandais juste pourquoi cela ne marchait pas.