Ignorer la navigation

V. Afficheurs 7 segments et chaînes de caractères

Cahier des charges :
  • objectif du programme : afficher les valeurs d'un potentiomètre (valeurs de 0 à 20) sur 2 afficheurs 7 segments (appartenant à un quadruple afficheur)
  • objectif pédagogique: découverte et manipulation des chaînes de caractères
Etape 1 : compréhension de la gestion des afficheurs 7 segments
  • vous allez d'abord choisir le composant contenant 4 afficheurs 7 segments et le déposer sur la fenêtre 'panneau'
  • vous allez ensuite choisir la 'routine composant' associée à l'afficheur choisi :

cette routine 'Afficher_Chiffre' nécessite 3 paramètres :

  • chiffre : il vaut 0, 1, 2 ou 3 selon que l'on veut allumer le chiffre de poids faible, le chiffre de rang 2, de rang 3, ou le chiffre de poids fort.
  • valeur : il s'agit de la valeur à afficher (de 0 à 9) ici on a mis par exemple la variable 'temps'
  • point décimal : il vaut 0 ou 1 et permet d'afficher ou non la "virgule" à droite du chiffre sélectionné sur l'afficheur. (ici 0 donc pas de virgule)

 

a) Faire le programme affichant 5 sur le digit des unités (variable 'unite' contenant 5 à afficher). Le programme contiendra une boucle infinie (fonctionnement comme une carte Arduino).


b) Faire le programme affichant 2 sur le digit des dizaines (variable 'dizaine' contenant 2 à afficher)

c) En allant sur l'afficheur proposé par Flowcode (clic droit) et en analysant les connexions proposées, faites le schéma de câblage 'physique' (électrique) de l'afficheur (référence SR 10521:  anode commune) :

 

   

d) Expliquez électriquement comment votre programme allume les leds de l'afficheur (prendre l'exemple du chiffre 5 affichée sur l'unité).


Comme la routine ne peut afficher qu'un chiffre à la fois et que l'on veut afficher plusieurs chiffres, on va afficher "très vite" chacun des chiffres pour donner l'illusion que tous les chiffres sont affichés en même temps (une led ne s'éteignant pas instantanément cela sera invisible pour nous).
e) Faire le programme affichant 5 sur le digit des unités puis 2 sur le digit des dizaines. Cela fonctionne-t-il , sachant que la vitesse de simulation est bien plus lente que le fonctionnement réel du 16F88?





Etape 2 : affichons un chiffre sur 2 des afficheurs 7 segments

Maintenant notre but est d'afficher le chiffre 56 sur notre quadruple afficheur. Ce chiffre sera contenu dans la variable 'nombre1' qui sera du type 'float' (flottant ou virgule flottante). Comme il faut envoyer digit par digit, il va falloir trouver une astuce pour y arriver. La solution réside dans l'utilisation des chaînes de caractères (que l'on peut manipuler facilement).

 

Une « chaîne de caractères », c'est un nom pour désigner… du texte, tout simplement !
Une chaîne de caractères, c'est donc du texte que l'on peut mettre dans une variable en mémoire.

Exemple: ma_variable = 'je suis un élève de STI'

"ma_variable" est une variable du type 'chaîne de caractères' contenant le texte : je suis un élève de STI

 

1ère partie: découverte des fonctions de gestion et manipulation des 'chaînes de caractères':


A l'aide du document ressources 'notice_flowcode_v4.pdf', répondre aux questions suivantes :
a) Expliquez le fonctionnement ou le rôle, détaillez la syntaxe et donner un exemple d'utilisation de la fonction 'ToString$'
b) Expliquez le fonctionnement ou le rôle, détaillez la syntaxe et donner un exemple d'utilisation de la fonction 'Length$'
c) Expliquez le fonctionnement ou le rôle, détaillez la syntaxe et donner un exemple d'utilisation de la fonction 'Mid$'
d) Expliquez le fonctionnement ou le rôle, détaillez la syntaxe et donner un exemple d'utilisation de la fonction 'StringToInt$'

 

2ème partie: utilisation des ces fonctions pour réaliser notre programme:

Principe: on va convertir notre variable flottante en entier. Ensuite on la convertit en chaîne de caractère et on extrait l'unité et la dizaine. Cette unité et cette dizaine seront mis dans 2 variables du type 'chaîne de caractères' puis convertis en entiers pour enfin être affichés sur les afficheurs 7 segments.

e) Faire le programme qui permet d'afficher 56 sur le quadruple afficheur 7 segments (vous aurez besoin d'utiliser les fonctions vues précédemment et de bien respecter le principe proposé). Essayez votre programme et quand tout fonctionne faites valider par le professeur



 
Etape 3 : faire le programme final répondant au cahier des charges :  potentiomètre variant de 0 à 20 dont la valeur s'affiche sur le quadruple afficheur 7 segments. 0 correspond à la valeur minimum (0 Volts) et 20 à valeur max (5V).

 Pour vous aidez voici le principe général à mettre en œuvre:     

  • récupérer et traiter la valeur du potentiomètre
  • mettre cette valeur sous forme de chaîne de caractères
  • extraire l'unité et la dizaine
  • convertir cette unité et cette dizaine en 'entier'
  • affichez les valeurs


Essayez votre programme et quand tout fonctionne faites valider par le professeur

Créé avec eXeLearning (Nouvelle fenêtre)