Étape 4: programmation
Pour la programmation, vous devez garder à l’esprit quelques notions importantes sur la conception de matériel et le changement de Registre 74HC595.
La fonction principale de 74HC595 consiste à transformer les 8 bits série composant logiciel enfichable dans 8 Maj parallèle-Out.
Toutes les données série allez dans Pin #14 et à chaque signal d’horloge les bits allez à ses broches de sortie parallèle correspondantes (Qa à Qh).
Si vous continue d’envoyer plus de données, les bits sera déplacé un Pin # 9 (Qh') comme sortie série encore une fois et grâce à cette fonctionnalité, vous pouvez mettre un autre jetons connectés en cascade.
Important :
Dans ce projet, nous avons trois ICs de 74HC595. Les deux premiers travaillent pour contrôler les colonnes (avec logique POSITIVE ) et le dernier pour contrôler les lignes (avec logique négative due les transistors PNP de fonctionnement).
Logique positive signifie que vous devez envoyer un signal de niveau haut (+ 5V) de Arduino et logique négative signifie que vous devez envoyé un signal de faible niveau (0V).
- Dot matrice de LED
- Le premier est pour les sorties de la cathode de LEDs rouges (x 8) >> Colonne rouge (1 à 8).
- Le second est pour l’outputL de la cathode de LEDs vertes (x 8) >> Colonne verte (1 à 8).
- Le dernier est pour la production d’anodes de toutes les LEDs (08 x rouge & vert) >> lignes (1 à 8).
Par exemple, si vous voulez allumer seule la LED verte de la colonne 1 et la ligne 1 vous devez envoyer la séquence suivante de données sérielles :
LIGNES DE 1º)
~10000000 (seule la première ligne est attribuée à) - le symbole ~ consiste à inverser tous les bits de 1 à 0 et vice versa.
2º) colonne vert
10000000 (seule la première colonne de la LED verte est sur)
3º) COLONNE ROUGE
00000000 (toutes les colonnes de LEDs rouges sont éteintes)
-Arduino déclarations :
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000) ; Logique négative pour les lignes
shiftOut (dataPin, clockPin, LSBFIRST, B10000000) ; Logique positive pour les colonnes vertes
shiftOut (dataPin, clockPin, LSBFIRST, B00000000) ; Logique positive pour les colonnes rouges
Remarque :
Vous pouvez également combiner les deux LED (vert et rouge) pour produire la couleur jaune comme suit :
shiftOut (dataPin, clockPin, LSBFIRST, ~ B10000000) ;
shiftOut (dataPin, clockPin, LSBFIRST, B10000000) ;
shiftOut (dataPin, clockPin, LSBFIRST, B10000000) ;
- Affichent 7 segments
Pour ce type d’écrans, la séquence est le même. La seule différence est que vous n’avez pas besoin d’utiliser les LEDs vertes.
1º) chiffres (1 à 4 de gauche à droite)
~ 10000000 (Réglez le chiffre 1 #)
~ 01000000 (Réglez le chiffre 2 #)
~ 00100000 (Réglez le chiffre 3 #)
~ 00010000 (Réglez le chiffre 4 #)
2º) NON UTILISÉES
00000000 (tous les bits définis à zéro)
3º) SEGMENTS (A à F et DP - vérifier votre affichage feuille de données)
10000000 (segment ensemble A)
01000000 (set segment B)
00100000 (set segment C)
00010000 (set segment D)
00001000 (segment set E)
00000100 (segment set F)
00000010 (segment set G)
00000001 (set DP)
-Arduino exemple pour définir l’affichage #2 avec numéro 3 :
shiftOut (dataPin, clockPin, LSBFIRST, ~ B01000000) ; La valeur de DISPLAY 2 (logique négative)
shiftOut (dataPin, clockPin, LSBFIRST, 0) ; Données de la valeur à zéro (non utilisé)
shiftOut (dataPin, clockPin, LSBFIRST, B11110010) ; Jeu de segments A, B, C, D, G)
Enfin, appliquer ce processus vous pouvez contrôler n’importe quel LED de votre écran et vous pouvez également créer des caractères spéciaux dont vous avez besoin.