Tags:
create new tag
view all tags

Affichage sept segments

Introduction

Cet exercice traite le module sept segments à quatre digits. Un exercice plus simple démontre l'utilisation du module sept segments à un seul digit (un digit).

sevenSeg4DigitsPins.png

Les détails de connexions pour les afficheurs en anode ou cathode commune se trouve à IoT_UCAD.LEDs#FourDigits.
À remarquer encore que le digit D1 est le digit tout à gauche et D3 le digit tout à droit.

Exercice 1 :

Connecter l’afficheur à sept segments au processeur via les pins GPIO. Créer 2 tables :

  • table des digits avec correspondances digit <> pin GPIO ;

  • table des LEDs avec la correspondance segment (a..g, dp) <> pin GPIO.

Douze (12 !) pins GPIO sont nécessaire.

Écrire un programme qui allume chaque LED pour 500 ms pour vérifier que les connexions sont correctes.

Exercice 2 :

Écrire une classe « HexDisplay » dans un fichier « hexDisplay.py » qui permet d’afficher des nombres hexadécimaux et décimaux.

La classe doit contenir les méthodes :

  • clear (self): qui efface tous les digits de l’afficheur à sept segments ;

  • showHexDigit (self, digit,valeur) : affiche la valeur « value » (0..0xf) sur le digit « digit » ;

  • showHexValue(self, value) : qui affiche la valeur « value » en hexadécimales ;

  • showDecValue(self, value) : qui affiche la valeur « value » en décimales ;

  • showDP(self, digit, dpOn) : qui affiche la virgule du digit « digit » si dpOn est vrai, l’éteint si dpOn est faut.

Essayer la classe avec un programme « FlowingDigit » qui affiche une séquence de nombres en répétition comme suit :

digit 0 digit 1 digit 2 digit 3
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
5 6 7 8
etc...      
D E F 0
E D 0 1
F 0 1 2
0 1 2 3

Exercice 3 :

Afficher l’heure de l’horloge interne de l’ESP32 sous le format : hh.mm. La virgule décimale entre l’heure et les minutes doit clignoter à une fréquence de 1 Hz (les secondes). Utiliser une interruption d’un temporisateur de l’ESP32 pour faire clignoter la virgule décimale et pour mettre à jour le temps.

Exercice 4 :

L’afficheur à sept segments est multiplexé et doit être rafraîchi périodiquement. Ceci peut être fait de la manière la plus élégante en utilisant les coroutines du module MicroPython uasyncio.

Modifier l’exercice 2 en utilisant les coroutines. La classe « HexDisplay » dans un fichier asyncHexDisplay.py » s’occupera ainsi de la tâche du rafraîchissement et le programme principale sera en sera dispensé.

Essayer cette classe avec un compteur hexadécimal et un compteur décimal pour des valeurs 0..100 (décimal) dans les deux cas.

Implémenter aussi le « Flowing Digit » en utilisant cette nouvelle classe.

-- Uli Raich - 2021-06-27

Comments

Topic attachments
I Attachment History Action Size Date Who Comment
PNGpng sevenSeg4DigitsPins.png r1 manage 47.3 K 2021-06-27 - 16:30 UliRaich  
PNGpng sevenSeg4DigitsTypes.png r1 manage 211.9 K 2021-06-27 - 16:30 UliRaich  
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2021-06-27 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback