mardi 26 juin 2012

Arduino, clavier numérique et afficheur LCD

Je me suis procuré un petit clavier numérique à 16 touches:  il s'agit du modèle qui ne coûte presque rien en frais postaux puisqu'il est aussi mince et flexible qu'un petit carré de carton.  J'ai l'intention d'ajouter ce clavier numérique à mon clavier MIDI, car j'ai constaté que naviguer à travers des dizaines de banques de sons en ne disposant que d'un bouton "up" et d'un bouton "down", ce n'est vraiment pas pratique.  Grâce à ce "keypad", je pourrai accéder directement à la banque de son désirée, à la condition de connaître son numéro.

Mais avant tout, j'ai fait quelques tests afin de me familiariser avec mon nouveau gadget.

Il s'agit donc d'un petit clavier comportant 16 touches:  en plus des chiffres, j'ai les 4 premières lettres de l'alphabet, ainsi que les symboles "*" et "#".  8 connecteurs permettent de le brancher à l'Arduino.  Au moyen d'un multimètre, j'ai rapidement constaté que les 4 premiers connecteurs sont reliés aux lignes alors que les 4 derniers sont reliés au colonnes.  Par exemple, si j'appuie sur la touche "6" (deuxième ligne, troisième colonne), la résistance devient nulle entre les connecteurs 2 et 7.

Après avoir installé la bibliothèque "keypad", j'ai expérimenté le sketch suivant, pour vérifier que tout fonctionnait convenablement:  chaque fois qu'une touche est enfoncée, le nom de la touche est affiché dans le moniteur série.  La seule modification notable par rapport au sketch fourni avec la librairie, c'est que j'ai dû régler le "debounce time" à une valeur assez élevée, car les touches avaient tendance à réagir deux fois quand mon intention était de ne les enfoncer qu'une seule fois.

Pour ce sketch, j'ai branché le connecteur 1 du clavier (voir schéma) à la pin 9 de l'Arduino, le connecteur 2 du clavier à la pin 8 de l'Arduino, et ainsi de suite jusqu'au connecteur 8 du clavier qui est branché à la pin 2 de l'Arduino.


Ensuite, j'ai ajouté un afficheur à cristaux liquides afin que le clavier numérique contrôle ce qui était affiché à l'écran (une sorte de mini machine à écrire, si on veut).  Dans ce sketch, la touche "*" permet d'effacer le dernier caractère affiché.  

Ce fut l'occasion de faire l'essai de mon nouveau Arduino Mega car mon afficheur LCD a besoin de 6 ports numériques, alors que le clavier en nécessite 8!  

Cette fois, le clavier est branché de la façon suivante:  

pin 1 du clavier à la pin 39 du Mega
pin 2 du clavier à la pin 41 du Mega
pin 3 du clavier à la pin 43 du Mega
pin 4 du clavier à la pin 45 du Mega
pin 5 du clavier à la pin 47 du Mega
pin 6 du clavier à la pin 49 du Mega
pin 7 du clavier à la pin 51 du Mega
pin 8 du clavier à la pin 53 du Mega

(Voir cet article pour les branchements de mon afficheur LCD.)


Finalement, j'ai conçu un petit "Quiz Mathématique" permettant de pratiquer mon calcul mental:  si on presse la touche "A", l'afficheur nous propose une addition.  On tape la réponse, on appuie sur la touche "#" et l'afficheur nous indique si notre réponse est correcte ou non.  Pour se faire proposer une autre addition, on appuie à nouveau sur la touche "A"... ou sur la touche "B" si on préfère une soustraction (la touche "C" propose une multiplication, et la touche "D" propose une division).  C'est un peu comme une calculatrice, mais à l'envers puisque c'est vous qui devez trouver la réponse.  Encore une fois, la touche "*" permet d'effacer le dernier caractère affiché, afin de corriger une erreur d'entrée.


Yves Pelletier (Twitter: @ElectroAmateur)

4 commentaires: