1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| // --- Inclusion des librairies utilisées ---
#include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD
#include <Keypad.h> // inclusion de la librairie pour clavier matriciel
// --- Déclaration des constantes ---
//--- Constantes utilisées avec le clavier 4x4
const byte LIGNES = 4; // 4 lignes
const byte COLONNES = 3; //3 colonnes
// --- constantes des broches ---
const int C3=3; //declaration constante de broche
const int C2=4; //declaration constante de broche
const int C1=5; //declaration constante de broche
const int RS=8; //declaration constante de broche
const int E=9; //declaration constante de broche
const int D4=10; //declaration constante de broche
const int D5=11; //declaration constante de broche
const int D6=12; //declaration constante de broche
const int D7=13; //declaration constante de broche
const int L4=16; //declaration constante de broche
const int L3=17; //declaration constante de broche
const int L2=18; //declaration constante de broche
const int L1=19; //declaration constante de broche
// --- Déclaration des variables globales ---
//--- Définition des touches
char touches[LIGNES][COLONNES] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
// tableaux de lignes et colonnes
byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
byte BrochesColonnes[COLONNES] = {C1, C2, C3}; //connexions utilisées pour les broches de colonnes du clavier
char touche; // variable de stockage valeur touche appuyée
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits
// création d'un objet keypad = initialisation clavier
Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
// les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé
// les broches de colonnes sont automatiquement configurées en SORTIE
//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --- ici instructions à exécuter au démarrage ---
lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
delay(10); // pause rapide pour laisser temps initialisation
// Test du LCD
lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
delay(2000); // pause de 2 secondes
lcd.clear(); // // efface écran et met le curseur en haut à gauche
delay(10); // pour laisser temps effacer écran
// les broches de lignes et d'entrée sont configurées automatiquement lors de l'initialisation du clavier
// ------- Broches en sortie -------
// ------- Broches en entrée -------
// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------
} // fin de la fonction setup()
// ********************************************************************************
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
// --- ici instructions à exécuter par le programme principal ---
touche = clavier.getKey(); // lecture de la touche appuyée
if (touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée
if (touche=='#') lcd.clear(); else lcd.print(touche); // efface écran si appui # sinon affiche touche
delay(300); // pause entre 2 appuis
} // fin gestion de la touche appuyée
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
// --- Fin programme --- |
Partager