Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]

La librairie Keypad pour les claviers matriciels (hors référence)


1.  Description

La librairie Keypad est une librairie pour le système Arduino.

Cette librairie est basée sur le tutoriel consacré aux claviers : http://www.arduino.cc/playground/Main/KeypadTutorial

Elle a été créée pour aider à l'abstraction matérielle, et à l'amélioration de la lisibilité du code. Elle "cache" (et automatise) les instructions pinMode et digitalRead appelées par l'utilisateur.

La librairie Keypad s'intègre les librairies d'abstraction matérielle : http://www.arduino.cc/playground/Code/HardwareAbstraction

2.  Téléchargement, installation et inclusion


A télécharger ici : Keypad_1-0.zip

Dézipper et mettre le répetoire Keypad dans votre répertoire Arduino dans le sous-répertoire "\libraries Dans le logiciel Arduino, créer un nouveau programme (ou en ouvrir un) et sélectionner depuis la barre de menu "Sketch->Import Library->Keypad" (Programme > Importer Librairie > Keypad ). Une fois que votre librairie est impoter, la ligne "#inlcude <Keypad.h>" doit appraêtre au début de votre programme.

3.  Liste des fonctions de la librairie Keypad

4.  Création d'un "objet clavier"

4.1  Le constructeur de création

Pour créer un "objet clavier", il faut utiliser le constructeur suivant :

Keypad(makeKeymap(userKeymap), row[], col[], rows, cols) 

4.2  Paramètres

  • userKeymap : tableau à 2 dimensions définissant les symboles des touches
  • row[] : tableau correspondant aux numéros des broches utilisées pour les lignes
  • col[] : tableau correspondant aux numéros dex broches utilisées pour les colonnes
  • rows : nombre de lignes
  • cols : nombre de colonnes

4.3  Exemple de création


const byte rows = 4; //four rows
const byte cols = 3; //three columns

char keys[rows][cols] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};

byte rowPins[rows] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[cols] = {8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );

Ce code crée un objet de type Keypad, appelé keypad, qui utilise les broches 5,4,3,2 pour les lignes et les broches 8,7,6 pour les colonnes. Le clavier a 4 lignes et 3 colonnes , et a donc 12 touches.

5.  Description des fonctions

5.1  void begin()

Initialise toutes les variables. En fait le constructeur le fait déjà.

void begin(makeKeymap(userKeymap))

5.2  char getKey()

Renvoie la touche (sous forme caractère ASCII) qui est appuyée, si une l'a été.

5.3  KeypadState getState()

Renvoie l'état courant du clavier.

Les 4 états possibles sont IDLE, PRESSED, RELEASED et HOLD.

5.4  setHoldTime(unsigned int time)

Définit le nombre de millisecondes que l'utilisateur doit appuyer sur un bouton pour activer l'état HOLD.

5.5  setDebounceTime(unsigned int time)

Définit le nombre de millisecondes entre 2 appuis de touches. C'est une pause anti-rebond.

5.6  addEventListener(keypadEvent)

Crée un évènement si le clavier est utilisé. Vous pouvez regarder un exemple dans le logiciel Arduino dans "File -> Sketchbook -> Examples -> Library-Keypad -> EventSerialKeypad"

6.  Principe d'utilisation

Pour inclure la librairie Keypad dans un programme, on ajoutera au début du programme la ligne suivante :

#include <Keypad.h>

Pour ce faire, le plus simple est d'utiliser le menu du logiciel Arduino Programme > Importer Librairie > Nom_librairie

Voir également l'instruction #include

7.  Exemples d'utilisation :

7.1  Exemple Complet


#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){
  Serial.begin(9600);
}

void loop(){
  char key = keypad.getKey();

  if (key != NO_KEY){
    Serial.println(key);
  }
}

8.  Commentaires utilisateurs

Aucun commentaire


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Traduction inspirée de la page originale : http://www.arduino.cc/playground/Code/Keypad