Étape 5: Conduite de l’affichage à sept segments
Un afficheur 7 segments est juste une collection de sept (ou huit si elle a un point décimal) sont éteintes, ce qui peut être utilisé pour afficher des nombres lorsque les voyants corrects sont allumés.
Il y a deux défis à leur utilisation que je vais examiner mes solutions à
- 14 LED de conduite sans utiliser toutes nos broches de sortie numérique
- Déterminer lequel LED à la lumière
Chasser tous les 14 LED de 3 bornes : Shift Registers
Intro
Il faudrait environ 14 broches de sortie numérique pour afficheurs sept segments de route les deux, qui n’est pas pratique, au lieu de cela nous faire utiliser des registres à décalage. L’opération complète d’un registre à décalage est au-delà de la portée de ce Instructable, mais Voici un lien vers un bon tutoriel, en fait j’ai basé mon code outre leur code "Sample 2.3".
Les connexions entre le Linkit un et le premier registre à décalage sont comme suit
latchPin 12 = verrou = 12 sur ard
Shift reg 11 = horloge = 11 sur ard
Shift reg 14 = data = 13 sur ard
BROCHES 1-7, 15 | Q0 "Q7 | Broches de sortie | |
BROCHE 8 | GND | Sol, Vss | |
BROCHE 9 | Q7 " | Hors série | |
BROCHE 10 | M. | Master Reclear, basse active | |
BROCHE 11 | SH_CP | Registre à décalage broche horloge | |
AXE DE 12 | ST_CP | Stockage Registre horloge broche (loquet) | |
PIN 13 | OE | Activer la sortie, peu actif | |
BROCHE 14 | DS | Entrée de données série | |
BROCHE 16 | SCR | Tension d’alimentation positive |
Assurez-vous que vous savez si vos écrans sont-anode commune ou cathode commune. La mienne étaient commun-cathode, ce qui signifiait que j’ai connecté chaque broche de sortie (Q0-Q7) du Registre à décalage à l’un des voyants via une résistance et ensuite connecté la cathode commun à la terre.
En choisissant les résistances pour votre écran, n’oubliez pas que l’e/s utilise 3.3V un LinkIt et pas 5.5V comme l’Arduino. J’ai choisi des résistances de 100 ohms pour 17mA actuel (3, 3 - 1.6V = 1,7 v aux bornes de résistance), mais devrait probablement ont visé pour la pleine 20mA puisqu’ils ont fini très terne.
Déterminer lequel LED à la lumière
J’ai utilisé ce tableau pour déterminer les segments pour un caractère donné.
Tout d’abord, j’ai fait une colonne pour chaque broche de sortie du Registre à décalage, puis une colonne correspondante, montrant les broches de l’afficheur 7 segments, il se connecte à.
Puis j’ai utilisé la fiche de données de l’affichage 7 segments correspondent c’est codes pin à segments (les segments sont étiquetés d’a à g)
Vous pouvez voir que j’ai fait une colonne pour chaque caractère (0-9) et qu’il a alors écrit un 1 si le voyant doit être allumé et 0 si elle doit être désactivée (il s’agit d’une table de vérité). Le « x » est "n’aime pas" parce que la broche n’est pas utilisée.
La colonne de lecture de bas en haut des résultats dans un nombre binaire (par exemple le caractère 2 nous donne X1101101) qui nous pouvons convertir en hexa et utiliser dans notre code (char 2 = 01101101 en binaire = 0x6D en hexadécimal). J’ai remplacé tous le X par 0, mais il ne fait aucune différence.
MAJ Pin | Goupille de SEG | Nom de SEG | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Q0 | 2 | rd | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 |
1ER TRIMESTRE | 3 | F | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
Q2 | 5 | E | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
Q3 | 9 | D | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
Q4 | 13 | C | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Q5 | 14 | G | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
Q6 | 15 | B | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
Q7 | CAROLINE DU NORD | CAROLINE DU NORD | X | X | X | X | X | X | X | X | X | X |
C’est le code de base que j’ai utilisé pour vérifier que j’ai eu les octets correctes pour les 10 caractères différents, il écoute sur le port série d’un certain nombre et exporte vers le premier registre, il n’y a aucune vérification d’erreur si vous entrez un caractère qui n’est pas 0-9.