Table des matières:

Assemblage et test de la matrice de points LED MAX7219 : 6 étapes (avec photos)
Assemblage et test de la matrice de points LED MAX7219 : 6 étapes (avec photos)

Vidéo: Assemblage et test de la matrice de points LED MAX7219 : 6 étapes (avec photos)

Vidéo: Assemblage et test de la matrice de points LED MAX7219 : 6 étapes (avec photos)
Vidéo: ARDUINO : MATRICE LED 8x8 MAX7219 2024, Juillet
Anonim
Image
Image
Vérifiez le paquet
Vérifiez le paquet

Un affichage matriciel est un dispositif d'affichage qui contient des diodes électroluminescentes alignées sous forme de matrice. Ces affichages matriciels sont utilisés dans des applications où les symboles, graphiques, caractères, alphabets, chiffres doivent être affichés ensemble en statique ainsi que Mouvement de défilement. L'affichage matriciel à points est fabriqué en différentes dimensions telles que 5x7, 8x8, 16x8, 128x16, 128x32 et 128x64 où les chiffres représentent les LED en rangées et en colonnes. Ces écrans sont également disponibles en différentes couleurs telles que rouge, vert, jaune, bleu, Orange, Blanc.

Dans ce Instructable, je vais passer par l'interfaçage d'une matrice de points 8 x 8 qui a un pilote MAX7219 à un Arduino Uno. Commençons.

Fournitures

MAX7219

Étape 1: Vérifiez le paquet

Comme vous pouvez le voir, j'ai une version smt de la carte pilote, il est très important de vérifier chaque composant nécessaire car les composants smd sont de très petite taille et vous pouvez facilement les perdre. Il existe également une version dip disponible en ligne mais j'ai utilisé la version smt pour sa taille.

Étape 2: Un peu sur cette matrice de points particulière

Un peu sur cette matrice de points particulière
Un peu sur cette matrice de points particulière

Un seul module peut piloter une cathode commune à matrice de points 8x8.

Tension de fonctionnement: 5 v

Dimensions: longueur 3,2 cm X 3,2 cm de large X 1,3 cm de haut, trous avec quatre vis, le diamètre de 3 mm

Modules avec interfaces d'entrée et de sortie, prise en charge de la mise en cascade de plusieurs modules.

Les bornes Data IN et OUT sont spécifiées sur le module.

Étape 3: Le pilote MAX7219

Le pilote MAX7219
Le pilote MAX7219
Le pilote MAX7219
Le pilote MAX7219

Le MAX7219 est un circuit intégré conçu pour contrôler une matrice LED 8x8. Le circuit intégré est un pilote d'affichage à cathode commune (commun négatif) d'entrée série qui interface des microprocesseurs (ou un microcontrôleur) avec des affichages à LED numériques à 7 segments jusqu'à 8 chiffres, des affichages à barres ou 64 LED individuelles.

Caractéristiques et spécifications

Plage de tension de fonctionnement: +4,0 à +5,5 V

Tension de fonctionnement recommandée: +5V

Tension d'alimentation maximale: 6V

Courant maximum autorisé à tirer à travers chaque broche de segment: 100 mA

Courant maximum autorisé à travers chaque broche de masse DIGIT: 500 mA

Basse consommation énergétique

Délai de transmission des données au segment: 2,2 msec

Température de fonctionnement: 0°C à +70°C

Température de stockage: -65°C à +150°C

Étape 4: Le circuit

Le circuit
Le circuit
Le circuit
Le circuit

Le circuit est assez simple et peut être construit en utilisant des cavaliers mâles à femelles. Suivez simplement le brochage et construisez le circuit. Vous pouvez ensuite l'assembler sur un PCB si vous faites une demande permanente pour la matrice.

La configuration des broches est la suivante:

  • Vcc à 5V Pin d'Arduino.
  • Gnd à Gnd Pin de l'Arduino.
  • DIN à la broche numérique 12 de l'Arduino.
  • CS à la broche numérique 11 de l'Arduino
  • CLK à la broche numérique 10 de l'Arduino.

Étape 5: Le code

Ici, dans ce Instructable, je vais vous fournir deux codes différents. On va générer des alphabets anglais et des smileys sur la matrice. L'autre allumera les 64 LED une par une. Vous devez utiliser la bibliothèque lledcontrol pour le faire fonctionner.

C'est le code pour les alphabets anglais et les sourires

#include int DIN = 12; int CS = 11; int CLK = 10; octet e[8]= {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; octet d[8]= {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; octet u[8]= {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; octet c[8]= {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; octet huit[8]= {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; octet s[8]= {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; octet point[8]= {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; octet o[8]= {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; octet m[8]= {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc=LedControl(DIN, CLK, CS, 0); void setup(){ lc.shutdown(0, false); //Le MAX72XX est en mode d'économie d'énergie au démarrage lc.setIntensity(0, 15); // Définit la luminosité à la valeur maximale lc.clearDisplay(0); // et efface l'affichage } void loop(){ byte smile[8]= {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; octet neutre[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; octet froncement de sourcils[8]= {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(sourire); retard(1000); printByte(neutre); retard(1000); printByte(froncer les sourcils); retard(1000); printEduc8s(); lc.clearDisplay(0); retard(1000); } void printEduc8s() { printByte(e); retard(1000); printByte(d); retard(1000); printByte(u); retard(1000); printByte(c); retard(1000); printByte(huit); retard(1000); octet(s) d'impression; retard(1000); printByte(point); retard(1000); printByte(c); retard(1000); printByte(o); retard(1000); printByte(m); retard(1000); } void printByte(caractère d'octet ) { int i = 0; for(i=0;i<8;i++) { lc.setRow(0, i, character); } }

et le code pour tester les 64 LED

//Nous devons toujours inclure la bibliothèque#include "LedControl.h"

/*

Maintenant, nous avons besoin d'un LedControl avec lequel travailler. ***** Ces numéros de broches ne fonctionneront probablement pas avec votre matériel ***** La broche 12 est connectée au DataIn La broche 10 est connectée au CLK La broche 11 est connectée à LOAD Nous n'avons qu'un seul MAX72XX. */LedControl lc=LedControl(12, 11, 10, 1);

/* on attend toujours un peu entre les mises à jour de l'affichage */

délai long non signé = 100;

void setup() {

/* Le MAX72XX est en mode d'économie d'énergie au démarrage, nous devons faire un appel de réveil */ lc.shutdown(0, false); /* Régler la luminosité sur des valeurs moyennes */ lc.setIntensity(0, 8); /* et efface l'affichage */ lc.clearDisplay(0); }

/*

Cette méthode affichera les caractères du mot "Arduino" les uns après les autres sur la matrice. (vous avez besoin d'au moins 5x7 leds pour voir tous les caractères) */ void writeArduinoOnMatrix() { /* voici les données pour les caractères */ byte a[5]={B01111110, B10001000, B10001000, B10001000, B01111110}; octet r[5]={B00111110, B00010000, B00100000, B00100000, B00010000}; octet d[5]={B00011100, B00100010, B00100010, B00010010, B11111110}; octet u[5]={B00111100, B00000010, B00000010, B00000100, B00111110}; octet i[5]={B00000000, B00100010, B10111110, B0000010, B00000000}; octet n[5]={B00111110, B00010000, B00100000, B00100000, B00011110}; octet o[5]={B00011100, B00100010, B00100010, B00100010, B00011100};

/* les affiche maintenant un par un avec un petit délai */

lc.setRow(0, 0, a[0]); lc.setRow(0, 1, a[1]); lc.setRow(0, 2, a[2]); lc.setRow(0, 3, a[3]); lc.setRow(0, 4, a[4]); retard (délai); lc.setRow(0, 0, r[0]); lc.setRow(0, 1, r[1]); lc.setRow(0, 2, r[2]); lc.setRow(0, 3, r[3]); lc.setRow(0, 4, r[4]); retard (délai); lc.setRow(0, 0, d[0]); lc.setRow(0, 1, d[1]); lc.setRow(0, 2, d[2]); lc.setRow(0, 3, d[3]); lc.setRow(0, 4, d[4]); retard (délai); lc.setRow(0, 0, u[0]); lc.setRow(0, 1, u[1]); lc.setRow(0, 2, u[2]); lc.setRow(0, 3, u[3]); lc.setRow(0, 4, u[4]); retard (délai); lc.setRow(0, 0, i[0]); lc.setRow(0, 1, i[1]); lc.setRow(0, 2, i[2]); lc.setRow(0, 3, i[3]); lc.setRow(0, 4, i[4]); retard (délai); lc.setRow(0, 0, n[0]); lc.setRow(0, 1, n[1]); lc.setRow(0, 2, n[2]); lc.setRow(0, 3, n[3]); lc.setRow(0, 4, n[4]); retard (délai); lc.setRow(0, 0, o[0]); lc.setRow(0, 1, o[1]); lc.setRow(0, 2, o[2]); lc.setRow(0, 3, o[3]); lc.setRow(0, 4, o[4]); retard (délai); lc.setRow(0, 0, 0); lc.setRow(0, 1, 0); lc.setRow(0, 2, 0); lc.setRow(0, 3, 0); lc.setRow(0, 4, 0); retard (délai); }

/*

Cette fonction allume quelques Leds d'affilée. Le motif sera répété sur chaque rangée. Le motif clignotera avec le numéro de ligne. la ligne numéro 4 (index==3) clignotera 4 fois, etc. */ void rows() { for(int row=0;row<8;row++) { delay(delaytime); lc.setRow(0, ligne, B10100000); retard (délai); lc.setRow(0, ligne, (octet)0); for(int i=0;i

/*

Cette fonction allume quelques Leds dans une colonne. Le motif sera répété sur chaque colonne. Le motif clignotera avec le numéro de colonne. la colonne numéro 4 (index==3) clignotera 4 fois etc. */ void colonnes() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, col, B10100000); retard (délai); lc.setColumn(0, col, (octet)0); for(int i=0;i

/*

Cette fonction allumera toutes les LED de la matrice. La led clignotera avec le numéro de rangée. la ligne numéro 4 (index==3) clignotera 4 fois etc. */ void single() { for(int row=0;row<8;row++) { for(int col=0;col<8;col++) { retard (délai); lc.setLed(0, ligne, col, vrai); retard (délai); for(int i=0;i

boucle vide() {

writeArduinoOnMatrix(); Lignes(); Colonnes(); Célibataire(); }

Étape 6: la sortie

Image
Image
Le résultat
Le résultat
Le résultat
Le résultat
Le résultat
Le résultat

Regardez la vidéo complète ici:-MAX7219 8x8 LED MATRIX ASSEMBLY AND TESTING utilisant ARDUINO

Eh bien, tout ce travail acharné porte ses fruits quand vous voyez le résultat. Ça en vaut la peine !!

Abonnez-vous à ma chaîne youtube: -Creative Stuff

Conseillé: