Terrain de jeu Arduino - Bibliothèque clavier

Terrain de jeu Arduino - Bibliothèque clavier

Le clavier est une bibliothèque pour l'utilisation de claviers de style matrice avec l'Arduino. De la version 3.0, il supporte maintenant mulitple pressions sur les touches.







Cette bibliothèque est basée sur le clavier Tutorial.

Il a été créé pour promouvoir abstraction matérielle. Il améliore la lisibilité du code en se cachant les appels pinMode et digitalRead pour l'utilisateur.

Vous ne aurez pas besoin de résistances externes ou diodes, car la bibliothèque utilise les résistances pullup internes et assure additonally que toutes les broches de colonnes inutilisées sont à haute impédance.

Cette bibliothèque est maintenant disponible via le gestionnaire de bibliothèque Arduino IDE. Si vous utilisez un IDE moderne (1.6.2 ou plus), vous pouvez simplement utiliser le menu:

Une fois trouvé, cliquez sur l'entrée et le bouton d'installation apparaît. Le fichier zip ci-dessous est pour l'IDE rétro (non recommandé pour l'utilisation, la mise à niveau!).

Mettez le dossier du clavier dans « bibliothèques » \ arduino.
Dans l'IDE Arduino, créez une nouvelle esquisse (ou un ouvert) et sélectionnez la barre de menu « Sketch -> Importer une bibliothèque -> Clavier ».
Une fois que la bibliothèque est importée, un « #include "Ligne apparaît en haut de votre croquis.

  1. Clavier numérique (makeKeymap (userKeymap), rangée [], col [], des lignes, des cols)

Instancie un objet de clavier qui utilise les broches 5, 4, 3, 2 que les repères de la rangée, et 8, 7, 6 que les repères de la colonne.
Ce clavier dispose de 4 lignes et 3 colonnes, résultant en 12 touches.

vide begin (makeKeymap (userKeymap))

Initialise le plan de codage interne soit égale à userKeymap
[Voir Fichier -> Exemples -> Clavier -> Exemples -> CustomKeypad]

carbonisation WAITFORKEY ()

Cette fonction attendra indéfiniment jusqu'à ce que quelqu'un appuie sur une touche. Attention: Il bloque tout autre code jusqu'à ce qu'une touche est enfoncée. Cela signifie pas de LED clignotantes, aucune mise à jour de l'écran LCD, sans rien à l'exception des routines d'interruption.







carbonisation getKey ()

Retourne la clé qui est pressée, le cas échéant. Cette fonction est non-blocage.

KeyState getState ()

Renvoie l'état actuel de l'une des touches.
Les quatre états sont IDLE, PRESSÉ, LIBÉRÉ et maintenez.

boolean keyStateChanged ()

Nouveau dans la version 2.0: vous permet de savoir quand la clé a changé d'un état à l'autre. Par exemple, au lieu de simplement tester une clé valide, vous pouvez tester quand une touche est enfoncée.

setHoldTime (temps unsigned int)

Réglez le nombre de millisecondes l'utilisateur devra tenir un bouton jusqu'à ce que l'état HOLD est déclenché.

setDebounceTime (temps unsigned int)

Réglez le nombre de millisecondes du clavier attendra jusqu'à ce qu'il accepte une nouvelle pression de touche / keyEvent. Ceci est la méthode anti-rebond « temporisation ».

addEventListener (keypadEvent)

Déclencher un événement si le clavier est utilisé. Vous pouvez charger un exemple dans l'Arduino IDE.
[Voir Fichier -> Exemples -> Clavier -> Exemples -> EventSerialKeypad] ou voir le code KeypadEvent Exemple.

Voici la liste des fonctions multi-keypress et la définition keylist. Je compléterai leurs descriptions ce week-end.

  • Touche [LIST_MAX]
  • getNames bool ()
  • bool IsPressed (char KeyChar)
  • int findInList (char KeyChar)

Rows = const 4 octets; // quatre lignes
const octet COLS = 3; // trois colonnes
clés ombles # 91; RANGS # 93; # 91; COLS # 93; = # 123;
# 123; '1'. '2'. '3' # 125 ;.
# 123; '4'. '5'. '6' # 125 ;.
# 123; '7'. '8'. '9' # 125 ;.
# 123; '#'. '0'. '*' # 125;
# 125; ;
octet rowPins # 91; RANGS # 93; = # 123; 5. 4. 3. 2 # 125; ; // connexion à la ligne brochage du clavier
octet colPins # 91; COLS # 93; = # 123; 8. 7. 6 # 125; ; // connexion aux Brochage de colonne du clavier

Clavier Clavier = Clavier # 40; makeKeymap # 40; clés # 41 ;. rowPins. colPins. RANGS. COLS # 41; ;

void setup # 40; # 41; # 123;
En série. commencer # 40; 9600 # 41; ;
# 125;

void loop # 40; # 41; # 123;
carboniser key = clavier. getKey # 40; # 41; ;

si # 40; clé! = NO_KEY # 41; # 123;
En série. println # 40; clé # 41; ;
# 125;
# 125;

Le clavier est une classe. Par conséquent, pour utiliser plusieurs clavier, vous devez créer une instance pour chacun d'eux. Dans l'exemple ci-dessus, le clavier du clavier exemple) était lié aux broches numériques 2, 3, 4, 5, 6, 7 et 8.

Pour ajouter un clavier lié aux broches numériques 9, 10, 11, 12, 13, 14, 15 et 16, vous pouvez créer l'instance keypad2 suivante.

Et maintenant, il est juste une question d'utiliser quelque fonction est recherché sur chaque clavier:

Dans Arduino suivre le menu principal de Fichier-> Examples-> Keypad-> Examples-> DynamicKeypad. Une fois l'esquisse est ouverte Configuration de la recherche () et là, vous verrez:

Cela montre que le temps de debounce permettra une touche toutes les 250 millisecondes. Si plusieurs touches se produisent dans ce laps de temps (comme cela se passerait quand une touche est rebondissant) alors ces presses supplémentaires sont tout simplement ignorés.

Une partie des bibliothèques ALPHABETA.







Articles Liés