Clavier

Clavier

//  *****************************************
//  ***    Clavier : Lecture d’un clavier                   ***
//  ***  et ecriture des informations sur                  ***
//  ***  le port serie.                                                ***
//  ***    L’appui sur la touche # allume la LED     ***
//  ***    L’appui sur la touche * eteint la LED       ***
//  *****************************************

#include <Keypad.h>

#define LIGNES         4    // 4 lignes
#define COLONNES  4    // 4 colonnes

// Definition du mappage du clavier
char keys[LIGNES][COLONNES] = {
  {‘1’,’2′,’3′, ‘A’},
  {‘4’,’5′,’6′, ‘B’},
  {‘7’,’8′,’9′, ‘C’},
  {‘#’,’0′,’*’, ‘D’}
};

#define LED 13    // La LED integree est raccordee a la broche 13

// Definition des broches utilisees pour les lignes
byte rowPins[LIGNES] = { 8, 9, 10, 11 };
// Definition des broches utilisees pour les colonnes
byte colPins[COLONNES] = { 3, 4, 5, 6 };

// Definition de la connexion avec le clavier
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, LIGNES, COLONNES );

void setup()
{
  pinMode(LED,OUTPUT);      //  Definition de la broche raccordee a la LED
  digitalWrite(LED, HIGH);  //  Allumage de la LED
 
  Serial.begin(9600);       //  Ouverture de la liaison serie
}


void loop()
{
  char Touche = kpd.getKey();  // Lecture du clavier : key contient la touche lue du clavier
 
  if(Touche)  // Si une touche est pressee, Touche est different de 0
  {
    switch (Touche) // Suivant la valeur de le touche lue
    {
      case ‘*’:  // Touche * : On eteint la LED
        digitalWrite(LED, LOW);
        break;
      case ‘#’: // Touche # : On allume la LED
        digitalWrite(LED, HIGH);
        break;
      default:  // Autres valeurs : On affiche le caractere sur le port serie
        Serial.println(Touche);
    }  // Fin switch (Touche)
  }  // Fin if Touche
//  Fin void loop