Bonsoir !
Voilà plusieurs fois que je cherche à faire un clavier numérique arduino qui réagirait comme un clavier téléphonique.
Pour cela je me suis fourni un clavier à membrane matriciel (celui sous la forme 3 colonnes sur 4 lignes).
J'arrive bien à lire la valeur d'une touche unique avec le code suivant :
#include <Keypad.h>
const byte ROWS = 4; //4 colonnes
const byte COLS = 3; //3 lignes
//symboles du clavier
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //pins des lignes
byte colPins[COLS] = {6, 7, 8}; //pins des colonnes
Keypad customKeypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS); //initialiser le clavier
void setup(){
Serial.begin(9600);
}
void loop(){
char customKey = customKeypad.getKey(); //lire la touche appuyé
Serial.println(customKey);
}
Ce que je souhaite faire, c'est de pouvoir lire plusieurs valeurs à la suite pour ensuite les "aligner",
je m'explique admettons que j'appuie sur la touche 1 et ensuite la touche 2, j'aimerai que ma valeur affiché soit 12.
Mais le problème étant que les touche sont des char et que j'aimerai obtenir une int ou une string.
Je fais cela afin de, par la suite, être capable de réaliser des opérations mathématiques avec ces valeurs.
Pour cela, j'ai pensé à utiliser un array de mes touches utilisés et ensuite réassembler les valeurs de l'array mais j'ai pas trouvé de solutions qui fonctionnent comme je l'espérais, ou du moins je n'ai pas réussi à faire ce à quoi je pensais.
La valeur sera affiché sur un écran LCD par la suite dans un menu.
Après quelques recherches, j'ai trouvé différentes fonctions menant à l'addition de string tel que concatenation mais je n'ai pas réussi à l'adapter à mon projet.
Un autre problème étant que, parfois en additionnant ces nombres on obtient des lettres, sûrement dû au fait que ce soit du code ASCII ?
Alors je viens vers vous pour avoir un peu d'aide sur le côté logique de la chose et pourquoi pas sur la partie code. J'ai trouvé, sur le forum, des personnes ayant du mal à appliquer ce même système, mais je n'ai malgré tout pas réussi à faire ce à quoi je m'attendais.
Merci de votre lecture et de votre aide, en espérant avoir été clair !