Étape 10 : Module 3 - encodeur rotatif et commutateurs - aperçu
Une des grandes choses au sujet de ce projet est que lorsque vous réglez l’heure de la molette vous pourriez tout aussi facilement être un méchant de Bond composer vers le haut le compte à rebours sur sa bombe atomique-volé ! Bien sûr, vous pourriez faire ce projet sans l’encodeur rotatif - un « up », un « bas » et un interrupteur de « jeu » serait faire le travail et prendre le même nombre de broches, mais où serait le plaisir à qui ?
Ce module est la plus courte et plus facile, mais il y a un couple d’amusement rides, et le résultat est formidable.
Tout d’abord aux encodeurs - j’ai juste choisis en fonction de comment à moindre coût, je pourrais leur source hors e-bay. Il y a peut-être de meilleurs critères, mais qui a fonctionné pour moi. Obtenir un avec 5 broches - ils ont un commutateur de presse ainsi que l’encodeur de tourner à gauche/droite. Vous voulez pas cela.
Un encodeur est essentiellement deux commutateurs. Lorsque vous l’allumez une façon le premier commutateur est connecté, suivi de la deuxième, suivi par une déconnexion du premier, suivi par une déconnexion du second. Dans l’autre sens, l’ordre est inversé afin que le deuxième interrupteur se connecte, suivi de la première, suivi par la deuxième déconnexion, suivi par la première déconnexion. En utilisant une résistance de menu déroulant sur la sortie et reliant les communes terminal à + 5V, on obtient une entrée « HIGH » pour un commutateur connecté et un « LOW » pour déconnecté.
La séquence va donc :
Dans le sens horaire :
A: H-H-L-L-H-H-L-L-H-H-L-L
B: L-H-H-L-L-H-H-L-L-H-H-L
Dans le sens anti-horaire :
A: L-H-H-L-L-H-H-L-L-H-H-L
B: H-H-L-L-H-H-L-L-H-H-L-L
La meilleure façon de lire ces utilise une interruption mises à appeler une routine lorsqu’une des entrées change d’État. En regardant la séquence ci-dessus, vous verrez que quand il va dans le sens horaire, A toujours des changements différents de B (A est leader). Aller vers la gauche, A toujours des changements même que B (A est la suivante). Une routine très courte peut être appelée lorsqu’un change et augmentez simplement un compteur, si A = B et baisse le compteur si un = / = B. Maintien de courtes interruptions, c’est toujours un bon plan.
Le seul problème est que nous utilisons un encodeur vraiment pas cher. L’idée ci-dessus fonctionne très bien mais l’encodeur à peu de frais « rebonds » tellement mal qu’il est à proximité d’inutilisable.
Il y a beaucoup de circuits debounce sur internet pour les encodeurs rotatifs, mais je voulais quelque chose qui a été un) facile & b) en utilisant les pièces que j’avais sur mon banc. Il s’avère qu’en se connectant à la broche d’entrée dans un 1K, en utilisant un 10K déroulants et ajout d’une casquette de 100nf partout pour mettre en mémoire tampon il, nous pouvons aller d’inutilisable à presque parfait avec deux pièces supplémentaires. C’est fondamentalement un filtre passe-bas brut. Schéma de circuit est donné dans la deuxième photo.
Nous pourrions également debounce dans le logiciel et vous verrez que dans l’exemple de code et le code de l’horloge complète, j’ai inclus des lignes commentées qui pourraient être hors commentés pour mettre en œuvre un debounce logiciel. Si vous ne pouvez pas épargner un cap de 100nf ou votre encodeur rebondit encore plus terriblement que le mien (qui ne semble pas possible) alors vous pouvez un commentaire du debounce logiciel.