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.

Vos activités récentes
Produits récemment visités
  1. vga to hdmi cable
  2. Gant noir
    Gant noir
    20,00Dh (dans outils)
  3. Matrice Led 8x8  avec MAX7219
  4. Carte arduino DUE
    Carte arduino DUE
    420,00Dh (dans Arduino)
  5. 5 x Led rouge 3MM
    5 x Led rouge 3MM
    1,50Dh (dans LED)
clear-bug-div
Catégories d'Articles
Dites-le à un ami
 
Avertissez un ami à propos de ce produit.
Mots de recherche populaires