Mika Tuupola

Ven, Nov 4, 2011

Les matrices LED sont des jouets amusants. Qui n’aimerait pas les lumières clignotantes? L’électronique est difficile. L’électronique est beaucoup plus difficile que la programmation. J’ai eu du mal à comprendre comment fonctionnent les matrices led. Quel est le meilleur moyen deapprendre quelque chose? Construisez-en un vous-même.

Structure de la matrice de LED

Dans un format matriciel Les LED sont disposées en lignes et en colonnes. Vous pouvez également les considérer comme des coordonnées y et x. Supposons que nous ayons une matrice 4×4.Les lignes seraient marquées de A à D et les colonnes de 1 à 4. Maintenant, nous peuvonstablir chacun CONDUIT par ligne et colonne. La led en haut à gauche serait (A, 1). La led de fond serait (D, 4).

Les matrices LED sont disponibles en deux saveurs. Anode à rangée commune (à gauche) et cathode à rangée commune (à droite).

 Matrices LED

La figure ci-dessus montre les différentes configurations. La différence entre ces deux configurations est la façon dont vous allumez une led. Avec une rangée commune, des sources de courant anodisé (tension positive) sont attachées aux lignes A..D et les courants coulent (tension négative, masse) vers les colonnes 1..4. Avec des puits de courant de cathode à rangée commune sont fixés aux rangées A..D et ressources actuelles vers les colonnes 1..4.

Par exemple. Pour allumer la led inférieure vers le bas (D, 4) de la matrice de cathode commune, vous devez alimenter la tension positive à la colonne 4 et connecter la ligne D à la masse. Abandon de la clarté J’utiliserai la cathode à rangée commune dans des exemples pour le reste de cet article.

Construire une matrice de LED

Pour construire une matrice de cathode à rangée commune 4×4, vous aurez besoin de 16 LED, de quatre résistances, de quelques en-têtes et d’une carte de prototypage. J’ai commencé par coller les lits sur une planche de prototypage avec de la colle époxy. De cette façon, il est plus facile d’avoiRLEs lits sont magnifiquement alignés. Lors du collage des LED, assurez-vous que les jambes longues et courtes sont alignées de la même manière.

 Matrice de led de collage

Lorsque la colle est sèche, il est temps de la plier et de la souder. Pliez d’abord toutes les cathodes à gauche aussi près que possible de la carte de prototypage. Soudez toutes les cathodes dans chaque rangée ensemble. Lorsque les cathodes sont prêtes, pliez toutes les anodes. Anodesdoit ne pas toucher les cathodes. J’ai utilisé un morceau de tube en plastique pour aider à plier les anodes pour former un pont au-dessus des cathodes.

 Jambes pliantes

Soudez maintenant toutes les anodes de chaque rangée. Souder les en-têtes etconnectez les lignes de cathode directement à l’en-tête.

 Bas

Les rangées d’anodes sont connectées à l’en-tête avec des résistances de limitation de courant.La valeur de la résistance dépend de la LED utilisée. Vérifiez la fiche technique de la LED pour la tension et le courant directs. LEDcalculator vous aidera à trouverrésistance correcte. Matrix est maintenant prêt pour les tests.

 Top

Adressage de la LED simple

La connexion de la masse à la ligne A et de la tension positive à la colonne 1 allumera la LED en haut à droite (A, 1).

 Led simple allumée

La connexion de la masse à la ligne D et de la tension positive à la colonne 4 allumera la LED inférieure (D, 4).

 Led simple allumée

L’intuition dirait qu’allumer les deux (A, 1) et (D, 4) en même tempsest juste connecter les quatre fils. Ce n’est pas le cas. Il y a quatre LED qui sont allumées. En effet, le courant traverse également (A, 4) et (D, 1).

 Quatre LED allumées

Multiplexage et persistance de la vision

Le multiplexage peut être utilisé pour afficher des motifs arbitraires avec des matrices de led. Le multiplexage est parfois aussi appelé balayage. Il scanne les lignes (généralement de haut en bas) et allume les LED nécessaires uniquement dans une rangée à l’heure. Quelque chose comme suivant:

  1. Commencez par tout déconnecter.
  2. Connectez la tension positive à toutes les colonnes nécessaires.
  3. Connecter la ligne à la terre. Cela allume les LED nécessaires dans la rangée.
  4. Déconnectez la ligne et toutes les colonnes.
  5. Effectuez les mêmes étapes une par une sur toutes les lignes, puis commencez à partir du début.

Faites-le lentement et vous verrez des rangées de LED clignotantes. Faites-le très rapideet l’œil humain peut voir tout le motif. Le phénomène est appelépersistence de la vision.

Dessinez un motif

Permet d’écrire du code simple pour dessiner un motif sur la matrice. Remarque !Même si j’utilise une carte Arduino, je n’utilise pas de bibliothèques Arduino norIDE pour le développement. J’aime cependant le schéma de numérotation des broches Arduino.Les fonctions pin_mode() et digital_write() fonctionnent exactement de la même manière que leurs équivalents Arduino.

Nous commençons par configurer les broches et leur état par défaut.

uint8_t column_pins = { 2, 3, 4, 5 };uint8_t row_pins = { 11, 10, 9, 8 };static void init(void) { /* Turn all columns off by setting then low. */ for (uint8_t x=0; x<4; x++) { pin_mode(column_pins, OUTPUT); digital_write(column_pins, LOW); } /* Turn all rows off by setting then high. */ for (uint8_t y=0; y<4; y++) { pin_mode(row_pins, OUTPUT); digital_write(row_pins, HIGH); }}

Pour afficher un motif sur la matrice, nous utilisons la fonction draw().Bitmap est passé en tant que tableau à deux dimensions. Le retard est utilisé uniquement pourmontrer la persistance de la vision.

uint8_t pattern = {{1,0,0,1}, {0,1,0,0}, {0,0,1,0}, {1,0,0,1}};void draw(uint8_t buffer, uint8_t delay) { for (uint8_t row=0; row<4; ++row) { /* Connect or disconnect columns as needed. */ for (uint8_t column=0; column<4; ++column) { digital_write(column_pins, buffer); } /* Turn on whole row. */ digital_write(row_pins, LOW); _delay_ms(delay); /* Turn off whole row. */ digital_write(row_pins, HIGH); }}

Pour examiner la persistance de l’effet de vision, nous dessinons le motif avecdifférents retards.

uint8_t main(void) { init(); /* With 100ms delay eye can see updating row by row. */ for (uint8_t i=0; i<10; i++) { draw(pattern, 100); } /* With 10ms delay pattern appears but flickers. */ for (uint16_t i=0; i<100; i++) { draw(pattern, 10); } /* Withoud delay solid pattern appears. */ while (1) { draw(pattern, 1); } return 0;}

Le code complet peut être trouvé à partir Degithub.Vérifiez la sortie de la vidéo ci-dessous.

Plus de lecture

Compétences de circuit: Matrice LED par Make Magazine. Piloter une LED avec ou sans résistance par Alexander Weber. Introduction aux Matrices LED de Conduite (PDF) technote par Avago Technologies. Diodes électroluminescentes (LED) par le Club Électronique.

Publié dans

AVR Electronics

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.