Ignorer la navigation

4- Digicode : changer le code d'accès

Changer le code d'accès

Objectifs
  • Permettre à l'administrateur de changer le code d'accès
  • Faire en sorte que le code d'accès reste en mémoire après une coupure de courant
Application utilisée

Tinkercad

Isis de la suite Proteus

 

Modifier le programme précédent pour que l'administrateur puisse changer le code d'accès. Pour cela il faut déclarer une nouvelle variable codeAdmin de type char* et initialisée avec la valeur "1492".

On suivra l'algorithme suivant :


  Simuler le programme avec Tinkercad. Qu'observe t-on ?

Indice : la variable code (code secret) est réinitialisée au début du  loop() effaçant ainsi sa précédente valeur.

Couper coller la ligne suivante située dans le loop() :

char code[] = "ACDC";

au dessus du setup().

Remarque : code est maintenant une variable globale, elle peut être modifiée dans le setup() et le loop().

  Simuler à nouveau le programme avec Tinkercad. Est-ce que le changement de code par l'administrateur est effectif cette fois ?


 Stopper la simulation puis simuler à nouveau votre programme (dans la réalité cela correspond à une coupure d'alimentation du digicode), vérifier si le nouveau code d'accès est toujours actif.

Il faut donc mémoriser le nouveau code d'accès dans un type de mémoire différent de la RAM jusqu'alors utilisée ; une mémoire qui soit non volatile.
 À l'aide du site Les mémoires de la carte Arduino, identifier le type de mémoire qu'il faut utiliser pour stocker le code d'accès.

 À l'aide du site La librairie EEPROM, modifier le programme précédent pour stocker le code d'accès en EEPROM.

  Simuler le programme avec Tinkercad. Malheureusement vous ne pourrez pas simuler la non volatilité de la EEPROM (en stoppant la simulation puis en la redémarrant), Isis par contre permet de le faire.

Télécharger le fichier Isis suivant : digicode_isis.zip. Dézipper l'archive dans vos documents et exécuter le fichier Isis.

Simuler le schéma et observer le code d'accès dans la fenêtre EEPROM.

Stopper la simulation (ce qui simule une coupure de courant).

Relancer la simulation et vérifier que le code d'accès ne s'est pas volatilisé lors de la coupure de courant.

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

Vérifier vos connaissances

Question

Une touche tapée au clavier est lue grâce à

Réponses

une boucle TANT QUE...FAIRE

une alternative SI...SINON

une boucle POUR

une boucle FAIRE...TANT QUE

Echo en retour

Question

Les quatre touches tapées par l'utilisateur sont stockés dans la variable code grâce à

Réponses

une boucle FAIRE...TANT QUE

une boucle POUR i allant de 1 à 4

une boucle POUR i allant de 0 à 3

une alternative SI...SINON

Echo en retour

Question

La RAM est une mémoire volatile ce qui signifie

Réponses

qu'elle ne peut retenir les données que quelques secondes

qu'elle doit rester alimentée pour conserver les données

que les données se volatilisent si l'on coupe l'alimentation

Echo en retour

Question

La mémoire EEPROM est une mémoire

Réponses

volatile

à long terme

non volatile

Echo en retour

Question

Le code d'accès doit être stocké

Réponses

indifféremment en RAM ou en EEPROM

en RAM

en EEPROM

Echo en retour

Créé avec eXeLearning (Nouvelle fenêtre)