Clavier matriciel

Clavier matriciel
Clavier matriciel Clavier matriciel Clavier matriciel
15,00Dh 
UGS:  
Disponibilité: En stock
Qté:  
Ajouter au comparateur | Ajouter le produit à votre liste d'envie

Clavier matriciel arduino


Utilisation d'un clavier matriciel à membrane avec Arduino
Composants utilisés

Principe de fonctionnement
Le clavier comporte 16 touches, dont 10 numériques (0-9) et 6 touches marquées # * A B C D. 
Il est matriciel : au lieu d'avoir 16 fils (1 par touche) et une masse, le multiplexage n'utilise que 8 sorties : 4 lignes et 4 colonnes.

Utilisations
  • Téléphonie
  • Clavier de digicode
  • Clavier d'alarme
  • Saisie de données numériques dans un programme Arduino (calibrage...)
  • Choix de menu...
Le clavier peut se coller sur un support, il est étanche.

Câblage
Il y a 8 fils en sortie du clavier, 4 lignes et 4 colonnes.
Vu de face, de gauche à droite :
pin 1-4 les quatre lignes, pin 5-8 les quatre colonnes.

Image
On le branche sur les 8 entrées digitales successives de la carte Arduino Uno de D9 à D2
pin1 --> D9
pin 2--> D8
pin 3--> D7
pin 4--> D6
pin 5--> D5
pin 6--> D4
Image
pin 7--> D3
pin 8--> D2
Programmation
Télécharger et installer la librairie Keypad.h
http://arduino.cc/fr/Main/LibrairieKeypad

Ce programme créé un objet de type Keypad, puis lit les entrées clavier et affiche sur le serial monitor les entrées.
On peut avec cette librairie :
  • lire la touche appuyée : char getKey()
  • surveiller l'état du clavier : KeypadState getState()
  • définir un délai d'appui pour valider la saisie : setHoldTime(unsigned int time)
  • paramétrer une pause anti-rebond : setDebounceTime(unsigned int time)
  • créer un événement si le clavier est utilisé : addEventListener(keypadEvent)
 

//*************************************************
// Clavier à membranne 16 touches avec Arduino
// tiptopboards.com  16 09 2013 C Rolland
// Exemple d'utilsiation du clavier 4 x4 touches
//
//
//*************************************************
#include <Keypad.h>

const byte ROWS = 4; //4 lignes
const byte COLS = 4; //4 colonnes
char keys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
//Brancher le clavier sur 2 3 4 5 (colonnes) et 6 7 8 9 (lignes)
byte rowPins[ROWS] = {9, 8, 7, 6}; //Lignes
byte colPins[COLS] = {5, 4, 3, 2}; //Colonnes
// Connections des touches
/*
S1  contact 4 8
S2  contact 3 8
S3  contact 2 8
S4  contact 1 8
S5  contact 4 7
S6  contact 3 7
S9  contact 4 6
S10  contact 3 6
S11  contact 2 6
S12  contact 1 6
S13  contact 4 5
S14  contact 3 5
S15  contact 2 5
S16  contact  1 5
*/

// Initialiser une instance de la classe keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
  Serial.begin(9600);   //Serial monitor
  Serial.println("Test de clavier 16 touches");
  
  // Pour activer l'état HOLD
  unsigned int time_hold = 4;
  keypad.setHoldTime(time_hold);
  
  //Anti rebond
  unsigned int time_anti_rebond = 4;  //4 ms
  keypad.setDebounceTime(time_anti_rebond);
    
}

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

  if (key != NO_KEY){
    Serial.println(key);   //Affiche la touche saisie
  }
}  //Fin de void loop

There are no reviews for this product.


Write Your Own Reviews

Please login to write review.

clear-bug-div
Catégories d'Articles
Dites-le à un ami
 
Avertissez un ami à propos de ce produit.
Mots de recherche populaires