====== Extension Keypad ===== Cette extension permet de gérer : * un [[cap622|clavier matriciel 16 touches]] * des variables caractères (char) ou chaînes de caractères (String). En effet, mBlock n'initialise que des variables numériques (de type double) pouvant contenir que des nombres. La gestion d'un clavier et des 'mots" composés nécessite d'utiliser des variables caractères (char = 1 code ASCII) ou chaîne de caractères (String = x codes ASCII). Pour la gestion du clavier, j'utilise la librairie Arduino [[https://playground.arduino.cc/Code/Keypad|Keypad]] de Mark Stanley et Alexander Brevig. ===== Historique ===== {{ :keypad.zip |Dernière version en téléchargement ici}}. * v1.4 - Ajout d'une conversion chaine -> nombre et correction de bug * v1.3 - Gestion de l'afficheur dans une bibliothèque spécifique et optimisation de l'utilisation des variables caractères et chaines. * v1.2 - Ajout de fonctions * v1.1 - Gestion du clavier et de variables de type (char) pour l'utiliser ===== Hardware ===== 8 pin digitales sont nécessaires. Les connexions visibles sont citées (sur l'image) du haut vers le bas. {{:cap622.png?200 |}} | pin |objet| | 4 | Colonne 4 (ABCD)| | 5 | Colonne 3 (369#)| | 6 | Colonne 2 (2580)| | 7 | Colonne 1 (147*)| | 8 | Ligne 1 (123A)| | 9 | Ligne 2 (456B)| | 10 | Ligne 3 (789C)| | 11 | Ligne 4 (*0#D)| ===== Blocs ===== {{ :keypad.jpg?300|}} * "Touche Keypad" : Lit le clavier et retourne le code de la touche pressée ou NULL sinon (nécessite une variable char). * "Ajouter TOUCHE1 à PHRASE1" : Ajoute le contenu de la variable TOUCHEx (de type char) à la fin de la variable PHRASEx (de type String). Permet de construire une phrase de plusieurs caractères. * "Supprimer dernier caractère à PHRASE1" : Supprime le dernier caractère de la variable PHRASEx (ex. correction). * "Effacer PHRASE1" : Efface le contenu de la variable PHRASEx. * "Mettre dans PHRASE1 la chaine Bonjour" : Initialise la variable avec la chaine indiquée [chaine sans guillemets au contraire des blocs opérateurs de comparaison qui les nécessitent). * "Mettre dans TOUCHE1 le caractère *" : Initialise la variable avec le caractère indiquée [caractère sans apostrophe au contraire des blocs opérateurs de comparaison qui les nécessitent). * "TOUCHE1" : Retourne le contenu de la variable TOUCHE1 de type (char) ['x']. * "PHRASE1" : Retourne le contenu de la variable PHRASE1 de type (String) ["xxxx"]. * "Conversion de PHRASE1 en nombre" : Si PHRASE1 contient une chaîne correspondant à un nombre (caractères de 0 à 9) la chaine est traduite en un nombre utilisable comme avec une variable numérique. * "TOUCHE1 valide" : teste le contenu de la variable TOUCHEx et retourne VRAI si elle contient une touche valide.