Bouton-poussoir avec anti-rebonds Réaliser le montage décrit ci-dessus. Filtrer les rebonds. Actionner le bouton-poussoir, visualiser et tracer l’évolution temporelle des signaux présents à la sortie du montage, et à chacune des entrées de la porte logique dont la sortie est issue. Un premier appui sur le bouton poussoir SW1 provoque l'allumage de la led D1 et l'activation du relais RL1. Si vous variez le paramètre debounceDelay, vous pouvez voir l’effet de la logique anti-rebond sur la prise en compte de l’état du bouton. Alors c'est qu'il y a front descendant donc un appui est validé// Si notre BP n'avait pas été appuyé donc état_Bp =0 , nous aurions pas incrémenter notre chiffre.// Si notre BP à été appuyé mais que son état actuel est toujours appuyé , nous aurions pas incrémenter notre chiffre.// Résultat on as bien détecter un front montant ( BP appuyé) et un front descendant (BP relâché)// Ici on remet notre flag à 0 pour ré-armer notre détection de front montant// On fait une pause pour le éviter les rebonds au relâchement// Nous arrivons à la parenthèse de la boucle infini, donc on repart au début et ainsi de suite .// Fin de notre fonction principale //################################# Boucle infinie #########################################// ( nom du port, N° broche du BP, temporisation anti rebond (10ms), état du BP (0 ou 1) )// On met notre flag à 1, pour signaler que notre Bp à été appuyé// comparaison de notre ancien état(état BP) , à l’état actuel avec tempo ( fonction "button")// Ici on remet notre flag à 0 pour ré-armer notre détection de front montant// Nous arrivons à la parenthèse de la boucle infini, donc on repart au début et ainsi de suite .//################################# Boucle infinie #########################################// Si il est toujours appuyé ce n'est pas un rebond// Ici on boucle tant qu'on a pas relâché le BP.Delay_us Mais je n'aurai plus d'affichage // Comme ceci bloque, alors j'ai mis l’affichage dans la boucle pour la démo !// Nous arrivons à la parenthèse de la boucle infini, donc on repart au début et ainsi de suite .// Fin de notre fonction principale Les boutons ne sont pas des systèmes mécaniques parfaits. Figure 3: un bouton-poussoir relié à la broche D4 avec la résistance interne de pull-up et une LED connectée à D7.
La logique anti-rebond ou debouncing permet d’éviter la détection de changements d’état parasites d’un capteur. Lors de l’utilisation de capteur renvoyant des états discrets, comme un bouton poussoir, il arrive, pour des raisons mécaniques ou autres, de détecter des changements d’état qui ne correspondent pas à ce que nous voulons détecter. On peut améliorer la fiabilité de ces mesures en utilisant une logique anti-rebond que nous allons voir dans ce tutoriel.Lorsqu’un système physique change d’état, il y a souvent des oscillations pendant la période transitoire pour des raisons physiques (mécanique, temps de réponse, etc.). Je vous propose de vous expliquer le phénomène , anti-rebond , qu'il faut traiter dès que l'on utilise un interrupteur, en particulier ,nos chers boutons-poussoirs. Lors de l’utilisation de capteur renvoyant des états discrets, comme un bouton poussoir, il arrive, pour des raisons mécaniques ou autres, de détecter des changements d’état qui ne correspondent pas à ce que nous voulons détecter. Commentaires 5.1. et ré-vérifier l’état haut pour valider l'action a faire.// On marque une pause pour attendre la stabilisation à l'état haut.// Je met les accolades par reflex même si avec une seule action dans le "if" je pouvais m'en passé.// Si après la pause l’état est toujours à 1 (Vcc) alors valide notre action , et on peut l’exécuter.// On marque une pause pour attendre la stabilisation à l'état haut// Je met les accolades par reflex même si avec une seule action dans le "if" je pouvais m'en passé.// Si après la pause l’état est toujours à 1 (Vcc) alors valide notre action , et on peut l’exécuter.// Ici notre boucle qui tourne sur elle même, tant que le BP est appuyé il faut donc obligatoirement relâché le BP pour sortir .// On marque une pause pour attendre la stabilisation à l'état bas.
Figure 4: Schéma électrique d’un bouton-poussoir relié à la broche D4 avec résistance interne pull-up et une LED connectée connectée à la broche D7 .
"Pour la carotte, le lapin est la parfaite incarnation du mal" -Robert Shecley-1/ créer une pause afin d'attendre la stabilisation de la tension . En prenant un temps suffisamment grand, la mesure devient fiable et il n’y a qu’un changement d’état par pression.Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site.