Étape 1: Bouton Debouncing
Pour illustrer le bouton debouncing, le projet que nous avons sélectionné contient deux LEDs. Lorsque le bouton est enfoncé, les LEDs alterner entre eux. Un bouton active un arrêt et l’autre sur. Lorsque vous relâchez le bouton, il peut recommencer le processus et provoquer les LEDs basculer à nouveau. Vous remarquerez les LEDs fait alterner deux fois ou plus avec seulement un seul bouton sur le.
Il y a deux façons de paralyser debouncing. Une méthode en circuit (matériel) avec utilisation d’un condensateur et le logiciel debouncing. Le matériel utilise simplement un condensateur pour éliminer les debouncing et le logiciel va créer une variable qui mesure le niveau de confiance du flux de bouton de ceux ou de zéros.
Avertissement : Cette méthode que j’utilise pour debouncing de matériel est très simple et pauvre équipe de méthode. Le principal problème de cette méthode est que la tension monte de 0 à 5v plutôt qu’un immédiat ou changement instantané. Ceci peut mettre le signal dans une gamme que le microcontrôleur ne sait pas comment faire face à la tension. Cette gamme est la zone située entre les seuils de signaux hautes et basses, qui se situe entre 2 et 3 volts. Cela étant dit, je n’ai pas personnellement vu aucun problème avec cela avec mon bouton debouncing. Si vous souhaitez éliminer cette escalade, utiliser un trigger de schmitt.
Dans l’illustration vidéo, vous pourrez voir que le circuit est raccordé sur le montage d’essai sans le matériel debouncing, donc le problème peut être vécu. Deux LEDs sont attachés pour le microcontrôleur, tous deux sur le PORT B, un sur la broche 0 et l’autre sur la broche 2. Deux de ces goupilles aura la valeur de sortie, et puisque les diodes sont vertes, une résistance de 330 ω est utilisée pour chaque LED. Le bouton switch est connecté à la broche 1, sur le port B. Cette broche sera réglée pour l’entrée et définie sur haute lecture (broche la valeur « 1 »). pour le premier test de « rebond », nous n’utiliserons pas un condensateur dans l’ensemble les deux fils du bouton.
Le programme pour faire les deux LEDs à basculer lorsque vous appuyez sur le bouton poussoir est très simple. Tout d’abord, les broches sont initialisés : broches de sortie dans les LEDs sont fixés à la sortie de la DDR (registre de Direction de données). Une des LED sont activés élevé, donc au début, on est sur et on est désactivé. Ensuite, la boucle sans fin est démarrée et le code contenu dans ce bloc est exécuté jusqu'à ce que le microcontrôleur perd de la puissance. Cette boucle, la goupille qui est reliée au bouton poussoir est constamment vérifiée pour déterminer si c’est sur l’intérieur. S’il est pressé et expose un 1, il vérifie ensuite si le bouton était premières libérés. Ceci est important, car si nous n’avons pas cette vérification, le bouton juste basculera en permanence que le bouton est enfoncé. Nous voulons seulement le bouton pour activer/désactiver si le bouton est enfoncé, puis relâché.
Lorsque le microcontrôleur est programmé, et la touche à plusieurs reprises, il devient évident que les LEDs alteme, parfois correctement et parfois plusieurs fois sur une touche qu’un seul. Ajouter le condensateur et vérifier la pression de bouton et LED basculer à nouveau. Sur l’oscilloscope, avec le condensateur installé, une augmentation progressive de la tension est créée lorsque le bouton est enfoncé, opposé à un tas de haut en bas des tensions résultant d’un rebond des parties mécaniques de la touche. Mais lorsque le bouton est relâché, il montre que la tension est une modification directe. C’est parce qu’un autre condensateur n’est pas installé entre le bouton et le microcontrôleur.