Ligne 220 : |
Ligne 220 : |
| i() | | i() |
| </syntaxhighlight> | | </syntaxhighlight> |
| + | |
| + | Une interruption peut également être désactivée avec {{i.disable()}} et réactivée avec {{i.enable()}}. |
| + | |
| + | === Cela ne marche pas bien! === |
| + | Vous aurez certainement remarqué que, suivant les cas, la LED heartbeat change d'état une ou plusieurs fois même si vous pressez une seule fois le bouton. |
| + | |
| + | Cela arrive souvent avec les boutons mécaniques où le contact n'est pas franc... mais présente souvent plusieurs rebond avec le contact définitif. Ces rebond déclenchent plusieurs fois l'interruption. |
| + | |
| + | == Déparasitage des boutons == |
| + | Il y a différentes techniques de déparasitages. Si vous utilisez les interruptions & callback, vous aurez besoin d'utiliser une méthode de déparasitage matérielle. |
| + | * [http://wiki.mchobby.be/index.php?title=Entr%C3%A9e_Bouton#D.C3.A9parasitage_des_boutons Déparasitage des boutons pour Arduino] (information utile en tous les cas) |
| + | * [http://www.eng.utah.edu/~cs5780/debouncing.pdf http://www.eng.utah.edu/~cs5780/debouncing.pdf] (''anglais'') - document très intéressant avec explications détaillées et différentes techniques de déparasitage. |
| + | |
| + | Si vous avez lisez l'état du bouton dans votre programme, vous pourrez utiliser une méthode de déparasitage logiciel comme celle-ci: |
| | | |
| {{HACK-WIPY-TRAILER}} | | {{HACK-WIPY-TRAILER}} |