Tout d’abord prendre un regard sur le schéma.
Ce que nous avons ici, c’est 9 boutons et 6 lignes de signal (3 entrées, 3 sorties). Le menu de base est en forme de grille, où les lignes d’entrée trois descendent comme colonnes (PIN0, PIN1 et PIN2), et les lignes de trois sortie apparaissent comme des lignes (PIN3, PIN4 et PIN5).
Chaque bouton est un momentanément sur le bouton, normalement ouvert. Que se passera-t-il donc lorsque nous appuyer sur le bouton, entre qu'il fera une connexion que d’entrée du bouton et sortie, d’autre y sage y a aucun lien.
La clé ici est dans le logiciel.
Ce que le logiciel va faire, c’est balayer très rapidement entre les entrées et sorties, pour chaque combinaison. J’exposerai les étapes pour 1 entrée, et puis il répète simplement les mêmes étapes que pour l’autre entrée.
Pour l’entrée sur PIN0
--PIN0, 1, 2, défini comme sorties
--3, 4, 5 définit comme entrées
1. la valeur PIN0, PIN1 et PIN2 faible
2. la valeur PIN0 haute
3. Vérifiez si PIN3 est haute ou basse, si haut, allez à fonction SW1
4. vérifier si PIN4 est haute ou basse, si haut, allez à fonction SW4
5. vérifier si PIN5 est haute ou basse, si haut, allez à fonction SW7
6. Définissez PIN0 à faible
Il répétera ensuite avec les seules différences étant les broches d’entrée est défini sur Elevé, et les noms du SW fonctionne sa va.
Ainsi vous pouvez voir ici le concept de base. Il transforme une entrée haute, puis vérifie chacune des sorties pour un signal. Si le signal est là, il va à la fonction de cet aiguillage. S’il ne trouve un signal à une broche de sortie, il définit cette entrée à bas et configure l’entrée prochaine à haute et revérifie chaque sortie. Cela va continuer à balayer comme ça jusqu'à ce qu’un signal est trouvé.
Vous pourrez ensuite ajuster les fonctions vers que commute pour vos besoins. L’esquisse de l’exemple contient simplement une instruction print série impression quel bouton a été activé.
Vous pouvez ajuster le code/schéma à cependant vous avez besoin. Ajouter des boutons, supprimer des boutons. Mon utilisation typique est mettant tout cela dans une seule fonction et puis en appelant cette fonction lorsque le programme s’attend à un bouton à presser ou est en attente pour un bouton.
Quelques commentaires clés :
1. vous pouvez seulement avoir 1 entrée haute à la fois. Non seulement les sorties ne lira pas correctement, mais vous pouvez les choses court-circuit Si vous appuyez sur les combinaisons de droite.
2. je suggère également la mise des résistances quelque part sur les lignes. Que ce soit un sur chacune des entrées ou un sur chacune des sorties, il continue de brûler votre microcontrôleur
3. vous pouvez également placer des diodes pour empêcher de court-circuitage des combinaisons, mais ils ne sont pas nécessaires.
4. vous devez également les résistances de pull-up dans le système. parfois, vous faites, parfois vous n’avez pas.
Je vais travailler sur l’ajout d’options de circuits supplémentaires et un exemple arduino croquis pour cela.