Table des matières:

Utiliser un clavier 4x4 avec CircuitPython : 4 étapes
Utiliser un clavier 4x4 avec CircuitPython : 4 étapes

Vidéo: Utiliser un clavier 4x4 avec CircuitPython : 4 étapes

Vidéo: Utiliser un clavier 4x4 avec CircuitPython : 4 étapes
Vidéo: Desk of Ladyada - Trying out platform.io and writing a TCA8418 driver 2024, Novembre
Anonim
Utiliser un clavier 4x4 avec CircuitPython
Utiliser un clavier 4x4 avec CircuitPython

Ce clavier peu coûteux offre une méthode simple de saisie numérique pour vos projets CircuitPython. Je vais l'utiliser avec un express Adafruit ItsyBitsy M0.

Tu auras besoin de:

  • Clavier - le mien est 4x4
  • ItsyBitsy M0 Express ou carte similaire
  • Mu Editor installé sur votre ordinateur
  • Câble USB pour flasher le code

Étape 1: Comment fonctionne le clavier

Comment fonctionne le clavier
Comment fonctionne le clavier

Leur clavier dispose de 16 interrupteurs à bulle simples à action lente disposés en 4 par grille avec 8 connexions en bas. Si nous numérotons à partir de la gauche de 0 à 7, les connexions 0 à 3 sont connectées à chacune des lignes. Connexion 0 à la rangée du haut et connexion 3 à la rangée du bas. Les connexions 4 à 7 sont connectées aux colonnes avec la connexion 4 sur la colonne de gauche et la connexion 7 sur la colonne de droite. Chacun des 16 commutateurs fait une jointure entre une combinaison ligne/colonne différente. Si nous appuyons sur la touche 7, la troisième ligne est jointe à la colonne de gauche. Nous pouvons sentir si la touche 5 est enfoncée si sa ligne est élevée et nous pouvons lire un HAUT sur sa colonne. Pour ce faire, nous SORTIE vers les lignes et ENTREE depuis les colonnes.

Nous devons définir chaque ligne HAUT à tour de rôle, tandis que les autres lignes sont BAS, lisez chaque colonne à tour de rôle jusqu'à ce que nous obtenions une entrée HAUT. Ceci est facilement géré avec des boucles for imbriquées.

Nous devons prendre en compte le fait que ces interrupteurs à bulle agissent assez lentement et doivent être appuyés assez fort pour les fermer. Le balayage des 16 commutateurs de cette manière peut être effectué très rapidement, mais nous devons balayer à plusieurs reprises pour capter une pression sur une touche. Nous devons également « rebondir » avec un court délai afin que les touches ne se répètent pas à chaque fois que nous appuyons.

Comme les commutateurs sont assez « spongieux », nous avons besoin d'un retour d'information à l'utilisateur pour indiquer qu'une pression sur une touche a été lue. La LED intégrée clignote à chaque fois qu'une pression sur une touche est détectée.

Étape 2: Connexions physiques

Connexions physiques
Connexions physiques

Connexions de gauche à droite sur KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 sur ItsyBitsy

D7 à D11 sont définis comme des SORTIES tandis que A5 à A2 sont définis comme des ENTRÉES avec PULLDOWN.

Le code a beaucoup de commentaires et devrait être assez facile à suivre.

Étape 3: Comment fonctionne Getkey()

Comment fonctionne Getkey()
Comment fonctionne Getkey()

Cette fonction balaye le clavier pour une seule pression sur une touche. Il vérifie rapidement chacune des clés à tour de rôle un maximum de 10 fois pour voir si un interrupteur à clé est fermé. Si une touche est enfoncée, elle renvoie la valeur de la touche, en comptant de gauche à droite de haut en bas (0 …15) Notez les valeurs de la rangée du bas: 14, 0, 15, 13 (Hex E, 0, F, D). Si aucune touche n'a été enfoncée, elle renvoie -999 comme code d'erreur qui peut être facilement récupéré dans le programme principal. La LED intégrée clignote si une pression sur une touche est captée comme retour utilisateur. Cela fonctionne assez rapidement et l'attente anti-rebond de 0,2 seconde n'est utilisée que lorsqu'une touche est enfoncée.

Étape 4: Getvalue(chiffres)

Obtenir une valeur (chiffres)
Obtenir une valeur (chiffres)

Cette routine fournit une valeur à n chiffres à partir des touches numériques. Il ignore les touches rouges.

Ce code Python peut facilement être converti pour s'exécuter sur un autre appareil, tel qu'un Raspberry Pi, il vous suffit probablement de modifier les lignes de configuration des broches en haut du script.

S'il vous plaît laissez-moi savoir si vous trouvez le code utile.

Restez en sécurité et amusez-vous!

Conseillé: