Dans ce tutoriel, nous allons concevoir un écran à défilement matriciel LED 8x8 à l'aide d'Arduino Uno, qui affichera des alphabets défilants.
La matrice LED 8x8 contient 64 LED (diodes électroluminescentes) qui sont disposées sous la forme d'une matrice, d'où le nom de matrice LED. Nous allons fabriquer cette matrice en soudant ces 64 LED sur le perfboard ou le PCB DOT. Les LED peuvent être de n'importe quelle couleur, choisissez celles qui sont disponibles avec vous. Ensuite, nous écrirons un programme pour Arduino pour contrôler ces 64 matrices de LED. L'UNO, selon le programme, alimente les LED appropriées pour afficher les caractères en défilement.
Composants requis:
- Arduino Uno
- 64 LED
- Perfboard avec d'autres outils de soudage
- Résistance 1KΩ (8 pièces)
- Alimentation (5v)
Circuit et explication de fonctionnement:
Il y a 64 LED disposées sous forme de matrice. Nous avons donc 8 colonnes et 8 lignes. Sur ces lignes et colonnes, tous les terminaux positifs dans une ligne sont rassemblés. Pour chaque rangée, il y a une borne positive commune pour les 8 LED de cette rangée. Il est montré dans la figure ci-dessous,
Donc, pour 8 lignes, nous avons 8 bornes positives communes. Considérons la première rangée, comme on le voit sur la figure, 8 LED de D57 à D64 ont une borne positive commune et sont désignées par «POSITIVE0». Maintenant, si nous voulons allumer une ou toutes les LED dans la première RANGÉE de la matrice, nous devons alimenter le PIN0 de la matrice LED. De même, si nous voulons allumer n'importe quelle LED (ou toutes) dans n'importe quelle RANGée, nous devons alimenter la broche de borne positive commune correspondante de cette rangée respective.
Ce n'est pas encore fini et le simple fait de laisser les MATRIX ROWS avec une alimentation positive ne donnera rien. Nous devons mettre à la terre les négatifs des LED pour les briller. Ainsi, dans une matrice de LED 8x8, toutes les bornes négatives des LED de n'importe quelle colonne sont rassemblées pour former huit bornes négatives communes, comme toutes les bornes négatives de la première colonne sont connectées ensemble au PIN-A1 (NEGATIVE7). Ceci est illustré dans la figure ci-dessous:
Il faut faire attention à ces broches lors du soudage des LED sur Perfboard.
Maintenant, si nous devons mettre à la terre une LED dans la première colonne, nous mettrons à la terre le PIN-A1 (NEGATIVE7) de la MATRIX, et il mettra à la terre toutes les LED de la première colonne. Le même processus s'applique aux sept autres colonnes négatives courantes.
Depuis, vous savez comment fonctionne le positif commun et le négatif commun. Associons-les pour voir comment ils fonctionnent ensemble et le circuit final pour l'affichage matriciel LED 8x8 à défilement ressemblera à ceci:
Piloter une matrice de LED 8x8 en utilisant le multiplexage:
Maintenant, disons que nous voulons allumer la LED57, puis nous devons alimenter le PIN0 de UNO et mettre à la terre le PIN-8 de UNO. Maintenant, pour allumer à la fois LED57 et LED50, nous devons alimenter PIN0, PIN1 et mettre à la terre PIN8, PIN9. Mais cela activera non seulement D57, D50 mais aussi D49, D58. Pour éviter cela, nous utilisons une technique appelée Multiplexage. Nous avons déjà discuté en détail de cette technique multiplex dans une matrice LED 8x8; parcourez cet article pour une explication détaillée. Ici, nous expliquons brièvement le multiplexage.
L'œil humain ne peut pas capturer une fréquence supérieure à 30 HZ. C'est-à-dire si une LED s'allume et s'éteint en continu au taux de 30 Hz ou plus. L'œil voit la LED comme allumée en permanence. Cependant, ce n'est pas le cas et la LED s'allumera et s'éteindra en permanence. Cette technique s'appelle le multiplexage.
Disons par exemple que nous voulons allumer uniquement LED57 et LED50 sans allumer D49 et D58. L'astuce est que nous allons d'abord alimenter la première rangée pour allumer la LED57 et attendre 1mSEC, puis nous l'éteindre. Ensuite, nous alimenterons la deuxième rangée pour allumer la LED50 et attendre 1mSEC, puis l'éteindre. Le cycle se déroule en continu à haute fréquence et les LED57 et LED50 s'allument et s'éteignent rapidement et les deux LED semblent être allumées en permanence à nos yeux. Cela signifie que nous n'alimentons qu'une seule rangée à la fois, ce qui élimine les chances d'allumer d'autres LED dans d'autres rangées. Nous utiliserons cette technique pour montrer tous les personnages.
Il existe également une bibliothèque appelée LedControlMS.h pour prendre en charge toute cette complexité de multiplexage, où il vous suffit de saisir le caractère ou le numéro que vous souhaitez imprimer sur une matrice LED, consultez cette matrice LED Arduino avec le projet MAX7219 pour plus de détails.
Explication de la programmation:
Dans notre code, nous avons écrit une valeur décimale pour chaque caractère et programmé ces valeurs dans l'Arduino. Le programme a écrit pour déplacer ces valeurs à la ligne suivante toutes les 0,2 s, cela sera vu comme un défilement des caractères vers le haut, c'est très simple.
Pour changer les caractères à afficher, il suffit de remplacer la valeur du tableau char ALPHA en fonction des valeurs de caractères données ci-dessous, 24,60,102,126,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,120,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,102,102,60, 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99, 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // W 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
Comme si vous voulez afficher DAD sur la matrice LED, remplacez d'abord les valeurs Characters dans le tableau char ALPHA en mettant les valeurs des caractères D, A et D de la liste ci-dessus:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0,0, 120,108,102,102,102,108,120,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
Les valeurs totales sont désormais de 5 * 10 = 50 valeurs, donc
Remplacer, pour (int x = 0; x <142; x ++) // 150-8 (pour arrêter le débordement) {…….. Avec, pour (int x = 0; x <42; x ++) // 50-8 (pour arrêter le débordement) {……..
Il vous suffit donc de changer le numéro.
Avec cela, vous avez fait la programmation et maintenant vous pouvez faire défiler n'importe quel texte sur la matrice LED 8x8, vérifiez le code complet ci-dessous avec une vidéo de démonstration.