Affichage sept segments
Introduction
Cet exercice traite le module sept segments \xE0 quatre digits. Un exercice plus simple d\xE9montre l'utilisation du module sept segments \xE0 un seul digit (
un digit).
Les d\xE9tails de connexions pour les afficheurs en anode ou cathode commune se trouve \xE0 IoT_UCAD.LEDs#FourDigits.
\xC0 remarquer encore que le digit D1 est le digit tout \xE0 gauche et D3 le digit tout \xE0 droit.
Exercice 1 :
Connecter l\x92afficheur \xE0 sept segments au processeur via les pins GPIO. Cr\xE9er 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\xE9cessaire.
\xC9crire un programme qui allume chaque LED pour 500 ms pour v\xE9rifier que les connexions sont correctes.
Exercice 2 :
\xC9crire une classe \xAB HexDisplay \xBB dans un fichier \xAB hexDisplay.py \xBB qui permet d\x92afficher des nombres hexad\xE9cimaux et d\xE9cimaux.
La classe doit contenir les m\xE9thodes :
-
clear (self): qui efface tous les digits de l\x92afficheur \xE0 sept segments ;
-
showHexDigit (self, digit,valeur) : affiche la valeur \xAB value \xBB (0..0xf) sur le digit \xAB digit \xBB ;
-
showHexValue(self, value) : qui affiche la valeur \xAB value \xBB en hexad\xE9cimales ;
-
showDecValue(self, value) : qui affiche la valeur \xAB value \xBB en d\xE9cimales ;
-
showDP(self, digit, dpOn) : qui affiche la virgule du digit \xAB digit \xBB si dpOn est vrai, l\x92\xE9teint si dpOn est faut.
Essayer la classe avec un programme \xAB FlowingDigit \xBB qui affiche une s\xE9quence de nombres en r\xE9p\xE9tition comme suit :
Exercice 3 :
Afficher l\x92heure de l\x92horloge interne de l\x92ESP32 sous le format : hh.mm. La virgule d\xE9cimale entre l\x92heure et les minutes doit clignoter \xE0 une fr\xE9quence de 1 Hz (les secondes). Utiliser une interruption d\x92un temporisateur de l\x92ESP32 pour faire clignoter la virgule d\xE9cimale et pour mettre \xE0 jour le temps.
Exercice 4 :
L\x92afficheur \xE0 sept segments est multiplex\xE9 et doit \xEAtre rafra\xEEchi p\xE9riodiquement. Ceci peut \xEAtre fait de la mani\xE8re la plus \xE9l\xE9gante en utilisant les coroutines du module MicroPython uasyncio.
Modifier l\x92exercice 2 en utilisant les coroutines. La classe \xAB HexDisplay \xBB dans un fichier asyncHexDisplay.py \xBB s\x92occupera ainsi de la t\xE2che du rafra\xEEchissement et le programme principale sera en sera dispens\xE9.
Essayer cette classe avec un compteur hexad\xE9cimal et un compteur d\xE9cimal pour des valeurs 0..100 (d\xE9cimal) dans les deux cas.
Impl\xE9menter aussi le \xAB Flowing Digit \xBB en utilisant cette nouvelle classe.
-- %USERSIG{UliRaich - 2021-06-27}%