Table des matières:

Affichage matriciel à LED : 5 étapes
Affichage matriciel à LED : 5 étapes

Vidéo: Affichage matriciel à LED : 5 étapes

Vidéo: Affichage matriciel à LED : 5 étapes
Vidéo: Matrice à led 2024, Juillet
Anonim
Affichage matriciel à LED
Affichage matriciel à LED

Dans ce projet, vous utiliserez à nouveau deux ensembles de registres à décalage. Ceux-ci seront connectés aux lignes et aux colonnes de l'affichage matriciel. Vous montrerez alors un objet simple, ou sprite, sur l'écran et l'animerez. L'objectif principal de ce projet est de vous montrer comment fonctionne un affichage matriciel et d'introduire le concept de multiplexage car il s'agit d'une compétence inestimable à posséder.

Étape 1: Choses requises

Choses requises
Choses requises

pour ce projet, vous aurez besoin de -: 1. 1 matrice LED 2. 8 résistances 1k ohm 3. 8 557 transistors 4. 1 ULN2803 IC 5 Arduino 6. 2 registre à décalage 74HC595 7. 2 Planche à pain 8. Fils de connexion

Étape 2: Travailler

Les unités matricielles sont généralement disponibles dans une matrice de LED 5x7 ou 8x8. Les LED sont câblées dans la matrice de telle sorte que l'anode ou la cathode de chaque LED soit commune dans chaque rangée. En d'autres termes, dans une unité matricielle à LED à anode commune, chaque rangée de LED aurait toutes leurs anodes dans cette rangée câblées ensemble. Les cathodes des LED seraient toutes câblées ensemble dans chaque colonne. La raison de cela deviendra bientôt évidente. Une unité matricielle 8x8 à une seule couleur typique aura 16 broches, 8 pour chaque ligne et 8 pour chaque colonne. La raison pour laquelle les lignes et les colonnes sont toutes câblées ensemble est de minimiser le nombre de broches requises. Si ce n'était pas le cas, une unité matricielle 8x8 couleur unique aurait besoin de 65 broches, une pour chaque LED et d'un connecteur commun d'anode ou de cathode. En câblant les lignes et les colonnes ensemble, seulement 16 broches sont nécessaires. Cependant, cela pose maintenant un problème si vous souhaitez qu'une LED particulière s'allume dans une certaine position. Si, par exemple, vous aviez une unité d'anode commune et vouliez allumer la LED à la position X, Y 5, 3 (5ème colonne, 3ème rangée), alors vous appliqueriez un courant à la 3ème rangée et mettriez à la terre la broche de la 5ème colonne. La LED de la 5e colonne et de la 3e rangée s'allumerait maintenant. Imaginons maintenant que vous vouliez également allumer la LED de la colonne 3, rangée 6. Vous appliquez donc un courant à la 6e rangée et mettez à la terre la broche de la 3e colonne. La LED de la colonne 3, rangée 6 s'allume maintenant. Mais attendez… les LED de la colonne 3, rangée 6 et de la colonne 5, rangée 6 se sont également allumées. En effet, vous mettez sous tension les rangées 3 et 6 et les colonnes 3 et 5 de mise à la terre. Vous ne pouvez pas éteindre les LED indésirables sans éteindre celles que vous souhaitez allumer. Il semblerait qu'il n'y ait aucun moyen d'allumer uniquement les deux LED requises avec les lignes et les colonnes câblées ensemble telles qu'elles sont. La seule façon dont cela fonctionnerait serait d'avoir un brochage séparé pour chaque LED, ce qui signifie que le nombre de broches passerait de 16 à 65. Une unité matricielle à 65 broches serait très difficile à câbler et à contrôler car vous auriez besoin un microcontrôleur avec au moins 64 sorties numériques. Existe-t-il un moyen de contourner ce problème ? Oui, c'est ce qu'on appelle le multiplexage (ou muxing). Le multiplexage est la technique consistant à allumer une rangée de l'écran à la fois. En sélectionnant la colonne qui contient la rangée qui contient la LED que vous souhaitez allumer, puis en mettant sous tension cette rangée (ou l'inverse pour les affichages à cathode commune), les LED choisies dans cette rangée s'allumeront. Cette rangée est ensuite éteinte et la rangée suivante est allumée, à nouveau avec les colonnes appropriées choisies et les LED de la deuxième rangée s'allument maintenant. Répétez avec chaque rangée jusqu'à ce que vous arriviez en bas, puis recommencez en haut. Si cela est fait assez rapidement (à plus de 100 Hz, ou 100 fois par seconde), alors le phénomène de persistance de la vision (où une image rémanente reste sur la rétine pendant environ 1/25e de seconde) signifiera que l'affichage apparaîtra à être stable, même si chaque rangée est allumée et éteinte en séquence. En utilisant cette technique, vous contournez le problème de l'affichage de LED individuelles sans que les autres LED de la même colonne ou rangée ne soient également allumées. En balayant les rangées et en éclairant les LED respectives dans chaque colonne de cette rangée et en faisant cela très rapidement (plus de 100 Hz), l'œil humain percevra l'image comme stable et l'image du cœur sera reconnaissable dans le motif LED. Vous utilisez cette technique de multiplexage dans le code du projet. C'est ainsi que vous devez afficher l'animation du cœur sans afficher également des LED superflues.

Étape 3:

Image
Image

vous devez calculer la valeur des résistances que vous pouvez utiliser. Vous devez d'abord obtenir des spécifications sur vos LED, vous devez connaître leur tension directe et leur courant direct, vous pouvez obtenir cette information à partir de la fiche technique. Le circuit fonctionne sur 5V donc votre tension source est de 5V qui peut être obtenue à partir d'un adaptateur 5v Téléchargez le fichier original pour mieux voir les schémas. (appuyez sur l'icône "i" dans le coin supérieur gauche de l'image)

Étape 4: le faire fonctionner

J'ai créé le programme qui affiche la phrase du moniteur série arduino sur la matrice, mon code est très basique. J'ai créé une application Android pour créer la police d'affichage. Veuillez visiter la page suivante pour installer l'application

Étape 5: Tout est fait !!!!!!!

Terminé !!!!!!!!!
Terminé !!!!!!!!!

Félicitations, votre matrice led 8x8 est prête. Vous pouvez afficher tout ce que vous voulez. Maintenant, vous pouvez jouer avec et créer une matrice LED 8x8 en soudant manuellement la matrice LED ou 16x8 et ainsi de suite !!!!!!

Conseillé: