Ignorer la navigation

2- Digicode : mémoriser le code tapé

Mémoriser le code tapé par l'utilsateur

Objectifs
  • Mémoriser le code tapé par l'utilisateur
  • Valider son fonctionnement avecTinkercad
Application utilisée
Tinkercad 

  Copier et éditer  le programme digicode présent dans la classe Tinkercad. Le squellette de programme suivant apparaît :

Commentaires :

Les lignes placées avant le setup() permettent de déclarer deux objets "logiciels" lcd et keypad. On parle de programmation orientée objet (ou encore de POO). L'intérêt est de pouvoir ensuite utiliser des méthodes (fonctions) rattachées à chaque objet.

Exemple : lcd.begin(16, 2); // initialise l'écran lcd en indiquant le nombre de ligne (2) et de colonne(16) en argument

Le tableau suivant donne les méthodes utiles pour écrire le programme digicode :

Méthode Rôle Exemple Commentaires
lcd.print() Écrire du texte sur l'écran lcd. lcd.print("CIEL1")                 

Écrit CIEL1 sur l'écran lcd.

Attention les caractères accentués ne sont pas pris en charge.

lcd.setCursor()

Positionne le curseur (non visible) à une position donnée.

lcd.setCursor(0, 1); Positionne le curseur sur la première colonne et sur la deuxième ligne (en partant du haut).
lcd.clear()

Efface tous les caractères affichés sur l'écran lcd.

lcd.clear(); Les caractères sont effacés et le curseur revient en première colonne et première ligne.
keypad.getKey() Permet de lire la valeur de la touche enfoncée du clavier. key = keypad.getKey(); La touche tapée est mémorisée dans la variable key. Si aucune touche n'est tapée alors key contient la valeur 0.

Les variables du loop() permettent de mémoriser le code tapé par l'utilisateur ainsi que le code secret :

Nom

Type

Rôle

Commentaires
input chaîne de caractères (char*) Mémoriser le code à quatre caractères tapé par l'utilisateur input est composé de quatre caractères
code chaîne de caractères (char*) Mémoriser le code d'accès secret
code est composé de quatre caractères
key caractère (char)
Mémoriser la touche tapé par l'utilisateur caractère ASCII

Remarque : pour accéder à chaque caractère de code ou de input il suffit d'indiquer le rang du caractère entre crochet :

Nom code[0] code[1] code[2] code[3] input[0] input[1] input[2] input[3]
Valeur 'A' 'C' 'D' 'C' '0' '0' '0' '0'

   Écrire un programme qui permet d'afficher ce que l'utilisateur tape. On utilisera l'algorithme suivant dans le loop() :

Équivalent en pseudo-code :

1 FAIRE
2     lire le clavier et stocker le résultat dans la variable key
3 TANT QUE (key est égal à 0)
4 afficher la valeur de key sur l'écran lcd // key est donc différent de 0, cela veut dire que l'utilisateur a appuyé sur une touche


 Valider par simulation avec Tinkercad et vérifier que toute les touches du clavier s'affichent sur l'écran lcd.

   Écrire un programme (en complétant le programme précédent) qui permet :

  • d'afficher les quatre premiers appuis de l'utilisateur ;
  • d'effacer l'écran au bout de 4 s.

On utilisera l'algorithme suivant :   

1 POUR i allant de 0 à 3
2     FAIRE
3         lire le clavier et stocker le résultat dans la variable key
4     TANT QUE (key est égal à 0)
5     afficher la valeur de key sur l'écran lcd
6     stocker la valeur de key dans input[i]
7 FIN POUR 
8 attendre 4 s // si la simulation est trop lente modifier en conséquence
9 effacer écran


 Valider par simulation avec Tinkercad.

   Modifier le programme précédent pour afficher des étoiles plutôt que le code tapé par l'utilisateur.

 Valider par simulation avec Tinkercad.

 Appeler le professeur pour présenter vos résultats.

Créé avec eXeLearning (Nouvelle fenêtre)