Tags:
tag this topic
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]]). <img alt="sevenSeg4DigitsPins.png" height="194" src="%ATTACHURL%/sevenSeg4DigitsPins.png" title="sevenSeg4DigitsPins.png" width="308" /> Les détails de connexions pour les afficheurs en anode ou cathode commune se trouve à IoT_UCAD.LEDs#FourDigits.<br />À 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 : * <p>table des digits avec correspondances digit <> pin GPIO ;</p> * <p>table des !LEDs avec la correspondance segment (a..g, dp) <> pin GPIO.</p> 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.<br /><br /> ---+ 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 : * <p>clear (self): qui efface tous les digits de l’afficheur à sept segments ;</p> * <p>showHexDigit (self, digit,valeur) : affiche la valeur « value » (0..0xf) sur le digit « digit » ;</p> * <p>showHexValue(self, value) : qui affiche la valeur « value » en hexadécimales ;</p> * <p>showDecValue(self, value) : qui affiche la valeur « value » en décimales ;</p> * <p>showDP(self, digit, dpOn) : qui affiche la virgule du digit « digit » si dpOn est vrai, l’éteint si dpOn est faut.</p> Essayer la classe avec un programme « !FlowingDigit » qui affiche une séquence de nombres en répétition comme suit :<br /><br /> | *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.<br /><br /> ---+ 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. -- %USERSIG{UliRaich - 2021-06-27}% ---++ Comments %COMMENT%
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
png
sevenSeg4DigitsPins.png
r1
manage
47.3 K
2021-06-27 - 16:30
UliRaich
png
sevenSeg4DigitsTypes.png
r1
manage
211.9 K
2021-06-27 - 16:30
UliRaich
E
dit
|
A
ttach
|
Watch
|
P
rint version
|
H
istory
: r2
<
r1
|
B
acklinks
|
V
iew topic
|
Ra
w
edit
|
M
ore topic actions
Topic revision: r2 - 2021-06-27
-
UliRaich
Home
Site map
AFNOG web
Embedded_Systems web
IoT_Course_English web
IoT_Course_French web
Main web
Sandbox web
TWiki web
IoT_Course_French Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
E
dit
A
ttach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback