16 touches clavier décodage avec un MCU AVR (3 / 7 étapes)

Étape 3: Lire rapidement sur la touche sur AVR

Ok, la première chose que vous remarquerez est que nous allons être sucer jusqu'à 8 ports i/o pour ce clavier sanglant. C’est un grand nombre d’e/s. Dans les prochaines étapes, je vais montrer comment vous pouvez réduire que d’environ quatre, peut-être un couple de plus selon la façon dont beaucoup vous contrôle souhaitée. Mais pour l’instant, nous allons accrocher cette ventouse droite dans huit ports d’e/s libres de notre AVR.

J’ai choisi PD [2..7] et PB [0.. 1] pour mes connexions. Répugnent à PD [0.. 1] Si vous souhaitez utiliser la communication série sur votre arduino ou autre clone. J’ai aussi eu des problèmes avec mes broches flottant, alors j’ai utilisé quatre résistances de k 10 de démolir les broches de la colonne au sol. Votre AVR a probablement des pull-ups internes, mais la logique que j’avais déjà proposé dans ma tête ne fonctionne pas bien avec qui. Vous remarquerez qu’il n’y a aucun code pin ou raccordement d’alimentation au clavier, contrairement à l’interrupteur molette binaire, j’ai parlé dans un précédent instructable.

Voici l’idée de base. Retirez les goupilles de quatre colonnes à 0V. La valeur de ces broches comme entrée. Définissez vos NIP de ligne en sortie avec des valeurs initiales logique 0. Effectuer une boucle sur chaque ligne, envoyant une logique 1 à la ligne et lire les broches de la colonne. Si il y a un là-dedans, alors vous avez une pression de touche. Aussi de note est la question du debounce clé. Par expérimentation, j’ai trouvé un taux de retard réalisable, sinon vous aurez beaucoup beaucoup keypress notifications pour chaque pression de touche unique. Selon la vitesse de votre microcontrôleur, vous devrez peut-être tweek il un peu trop.

J’ai joint un fichier au bas que j’ai écrit pour cette section afin de démontrer le lien direct et lecture du clavier. Si vous choisissez de l’utiliser, vous devrez modifier les bibliothèques de référence que j’ai écrit pour communication série comme je l’ai. Autre que cela, selon moi, qu'il devrait être généralement bon. Voici le pseudo-code de montrer le débit :

 ROWS set INPUT COLS set OUTPUT for (ever) { for each ROW from 0 to 3 { Set ROW HIGH if COL1 HIGH number pressed is ( 4 * ROW) else if COL2 HIGH number pressed is ( (4 * ROW) + 1) if COL3 HIGH number pressed is ( 4 * ROW) + 3) if COL4 HIGH number pressed is ( (4 * ROW) + 3) delay for debounce Set ROW LOW } } 

N.-B. Les nombres sont leur logique nombres de 0 à 15, pas le nombre réel sur la touche qui a été utilisée. Pour ce faire, vous devez ajouter une logique plus dans votre section « nombre pressé est... », ou le mapper à un tableau, qui est à quelques pas de là. Tout d’abord, nous allons voir comment réduire le nombre de broches d’e/s ce clavier prend notre microcontrôleur.

Articles Liés

Comment utiliser un clavier de matrice avec Ardunio

Comment utiliser un clavier de matrice avec Ardunio

Claviers de matrice sont cool ! C'est comme un clavier qui peut facilement être utilisé pour s'interfacer avec votre Arduino pour divers projets différents, de verrous de combo pour calculatrices, télécommandes sans fil et des boutons supplémentaires
Tactile clavier / contrôleur avec Arduino et la transformation de jeu

Tactile clavier / contrôleur avec Arduino et la transformation de jeu

cette instructable décrit une manière simple et rapide pour créer un clavier tactile ou contrôleur de jeu à l'aide-carton,-papier d'aluminium,- et un Arduino.Il fournit également les codes Arduino et traitement immédiatement commencer à jouer !Idéal
Assembler le Dragon Rider 500 pour une utilisation avec le Dragon AVR

Assembler le Dragon Rider 500 pour une utilisation avec le Dragon AVR

pas longtemps la société Atmel est sorti avec un excellent outil pour une utilisation avec la ligne AVR de microcontrôleurs appelé le Dragon de l'AVR. Ce petit appareil USB fournit les professionnels et les amateurs aussi bien la possibilité d'utilis
Comment débuter avec Eclipse et AVR

Comment débuter avec Eclipse et AVR

AVRs programmation est amusant, mais parfois les environnements de développement des fabricants font code entretien une corvée. Si vous cherchez un libre, multi-plateforme, pièce de haute qualité du logiciel de programmation AVRs Eclipse est un bon c
Comment utiliser le Dragon Rider 500 avec votre Dragon AVR

Comment utiliser le Dragon Rider 500 avec votre Dragon AVR

cette instructable est un cours intensif dans comment utiliser certaines des fonctionnalités du Dragon Rider 500 de Ecros Technologies. Veuillez prendre note qu'il y a un très détaillée Guide disponible sur le site Ecros.Le Rider Dragon est une carte
Convertir un clavier ZX82 spectre dans un clavier USB extensible avec Arduino

Convertir un clavier ZX82 spectre dans un clavier USB extensible avec Arduino

Dans ce Instructable, je vais vous montrer comment convertir un clavier USB développable fonctionnellement compatible avec n'importe quoi de votre clavier ZX82 spectre compatible USB. Cette version est assez compacte pour que lorsque vous avez termin
Clavier USB mini avec un microcontrôleur $7

Clavier USB mini avec un microcontrôleur $7

Rendre un clavier utilisant un microcontrôleur pour envoyer rapidement sur la touche usb, qui s'interface avec AutoHotKey, une application Windows pour créer des applications et des macros.AutoHotKey peut être utilisé avec votre clavier original sans
Faire un ThinkPad clavier USB adaptateur avec Arduino

Faire un ThinkPad clavier USB adaptateur avec Arduino

Parmi les portables de classe affaires, ThinkPads ont les meilleurs claviers. Même avec le changement aux claviers de style de l'île, je dirais que les claviers ThinkPad encore battre tous ses concurrents de portable haut la main dans le département
12 touches clavier Terminal commun

12 touches clavier Terminal commun

Il s'agit d'une façon rapide et sale d'aborder les broches sur le clavier terminal commun clé 12 avec une carte de dev microcontrôleur de type Arduino. Le clavier est de marque Seeedstudios et je l'ai eu de la RadioShack composant électronique Pack 2
Touchez le capteur créé avec Attiny13A

Touchez le capteur créé avec Attiny13A

Ce projet a été terminé depuis longtemps alors que travaillé il y a, par le temps que je voulais faire un touch pad alors cherché sur internet et a trouvé un fichier .c contient touche fonction, après piquer avec elle dans le matériel trouvé il n'a p
Touche couteau de poche avec un stylo

Touche couteau de poche avec un stylo

lecteurs Bonjour Wow fatigué de perdre vos clés, n'ayant ne pas un stylo quand faut il, doit avoir l'envie de couper quelque chose et vous avez laissé votre couteau à la maisonEh bien maintenant c'est juste le passéCouteau de poche clé avec un stylo(
De l’Arduino et perfboard de PCB avec autonome MCU

De l’Arduino et perfboard de PCB avec autonome MCU

Ce Instructable est le successeur direct de celui-ci. À la fin de cette accumulation, mon projet de platine est presque complet (enfin).L'objectif est développer un beau et PCB avec SMD électronique avec un travail ATtiny85 + logiciel de travail !Ain
Quadcopter DIY avec 51 MCU C8051F 2212 KV930 moteur allemand EPP1045

Quadcopter DIY avec 51 MCU C8051F 2212 KV930 moteur allemand EPP1045

vous rêvez sur bricolage un quadcopter cool par vous-même un jour ? Aujourd'hui L'équipe ICStation vous les étapes de fabrication partagera avec beaucoup d'images ultra claires. Le quadcopter que nous vous présentons utilise le cadre de 51MCU et de t
BMW Diesel injecteur codage avec DIS v44

BMW Diesel injecteur codage avec DIS v44

Comment faire pour recoder des injecteurs sur un diesel BMW place à 12/2005 à l'aide du logiciel DIS et un câble USB-OBD.