Arduino Uno LED 8x8 MAX7219 Led 8x32 - Projects Arduino

Composants utilisés
Image.Image

Principe
L'afficheur comporte 8 lignes et 8 colonnes de LED, contrôlables individuellement.
Il permet d'afficher avec ces 64 LED 256 x 256 motifs possibles = 65 536 combinaisons lumineuses.

Tous les caractères numériques, alphabétiques, ou caractères spéciaux sont donc affichables.
La brillance des leds peut être ajustée par logiciel.

Montage
L'afficheur MAX7219 Dot Matrix est fourni en kit simple à souder.
  • Souder la résistance et les deux condensateurs (l'électrolytique est polarisé, attention au sens)
  • Souder le support de circuit (placer l'encoche comme sur le schéma imprimé)
  • Souder les 2 connecteurs et les 2 supports d'afficheur.
  • Placer le circuit intégré et l'afficheur à cathode commune sur leurs supports.

Fonctionnement
Il suffit de 3 fils de commandes et 2 fils d'alimentation pour contrôler un ou plusieurs afficheurs.
Le pilotage est très simple depuis une carte Arduino.
Il se fait en mode série et utilise la persistance rétinienne en balayant les 8 colonnes rapidement.

Des modules identiques peuvent s'enchaîner en reliant Din et Dout d'un premier module au suivant.

Câblage 5 fils
Image

Module --> Arduino
  • Gnd --> GND il faut impérativement relier les masses du module et du contrôleur
  • +V > 5V
  • DIN --> Pin8
  • CS --> Pin 9
  • CLK --> Pin 10
Le module 8x8 leds peut fonctionner avec l'alimentation 5V de l'Arduino pour les tests. 
Utiliser une alimentation séparée (5 V, 2 A) si on en utilise plusieurs, ou combinés avec d'autres composants.

La consommation des 64 leds allumées à la fois est de 400 mA. (8 x 50mA et temps de cycle de 1/8), le port USB peut fournir 500 mA depuis un PC alimenté.

Programmation
Il n'y a pas besoin de librairie spécifique à installer.

Cet exemple de code affiche successivement 0 1 2 3 4 5 6 7 8 9 puis A--Z.
CODE: TOUT SÉLECTIONNER
// Exemple de code Module Max7219 reseau de 8x8 LEDS
//
// Revision 19 08 2013

 unsigned char j; 
//Cablage du module (gnd et +V) utilise 3 pins
int Max7219_pinCLK = 10;  
int Max7219_pinCS = 9;
int Max7219_pinDIN = 8;

//Définition des pixels a eclairer 
//0-9 puis A-Z soit 10+26 = 36 caractères

unsigned char disp1[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
{0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
{0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
{0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
{0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,0x0},//6
{0x3E,0x22,0x4,0x8,0x8,0x8,0x8,0x8},//7
{0x0,0x3E,0x22,0x22,0x3E,0x22,0x22,0x3E},//8
{0x3E,0x22,0x22,0x3E,0x2,0x2,0x2,0x3E},//9
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22},//A
{0x3C,0x22,0x22,0x3E,0x22,0x22,0x3C,0x0},//B
{0x3C,0x40,0x40,0x40,0x40,0x40,0x3C,0x0},//C
{0x7C,0x42,0x42,0x42,0x42,0x42,0x7C,0x0},//D
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C},//E
{0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x40},//F
{0x3C,0x40,0x40,0x40,0x40,0x44,0x44,0x3C},//G
{0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44},//H
{0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x7C},//I
{0x3C,0x8,0x8,0x8,0x8,0x8,0x48,0x30},//J
{0x0,0x24,0x28,0x30,0x20,0x30,0x28,0x24},//K
{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C},//L
{0x81,0xC3,0xA5,0x99,0x81,0x81,0x81,0x81},//M
{0x0,0x42,0x62,0x52,0x4A,0x46,0x42,0x0},//N
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//O
{0x3C,0x22,0x22,0x22,0x3C,0x20,0x20,0x20},//P
{0x1C,0x22,0x22,0x22,0x22,0x26,0x22,0x1D},//Q
{0x3C,0x22,0x22,0x22,0x3C,0x24,0x22,0x21},//R
{0x0,0x1E,0x20,0x20,0x3E,0x2,0x2,0x3C},//S
{0x0,0x3E,0x8,0x8,0x8,0x8,0x8,0x8},//T
{0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1C},//U
{0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18},//V
{0x0,0x49,0x49,0x49,0x49,0x2A,0x1C,0x0},//W
{0x0,0x41,0x22,0x14,0x8,0x14,0x22,0x41},//X
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},//Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},//Z
};

//Autre exemple, caracteres speciaux (a definir soi meme)
//Voir explications sur http://tiptopboards.com/arduino_tutoriel/posting.php?mode=edit&f=2&p=6
//{0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55},  //damier1
// {0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA},  //damier2
 
//Ecriture d'un caractere 8x8
void Write_Max7219_byte(unsigned char DATA) 
{   
            unsigned char i;
       digitalWrite(Max7219_pinCS,LOW);      
       for(i=8;i>=1;i--)
          {        
             digitalWrite(Max7219_pinCLK,LOW);
             digitalWrite(Max7219_pinDIN,DATA&0x80);// Extracting a bit data
             DATA = DATA<<1;
             digitalWrite(Max7219_pinCLK,HIGH);
           }                                 
}
 
//Ecriture elementaire d une seule rangee 
void Write_Max7219(unsigned char address,unsigned char dat)
{
        digitalWrite(Max7219_pinCS,LOW);
        Write_Max7219_byte(address);           //address,code of LED
        Write_Max7219_byte(dat);               //data,figure on LED 
        digitalWrite(Max7219_pinCS,HIGH);
}

//Initialisation du module Max 7219 
void Init_MAX7219(void)
{
 Write_Max7219(0x09, 0x00);       //decoding :BCD
 Write_Max7219(0x0a, 0x03);       //brightness 
 Write_Max7219(0x0b, 0x07);       //scanlimit;8 LEDs
 Write_Max7219(0x0c, 0x01);       //power-down mode:0,normal mode:1
 Write_Max7219(0x0f, 0x00);       //test display:1;EOT,display:0
}
 
 
//Le programme d affichage
void setup()
{
 //Pins a utiliser
  pinMode(Max7219_pinCLK,OUTPUT);
  pinMode(Max7219_pinCS,OUTPUT);
  pinMode(Max7219_pinDIN,OUTPUT);
  delay(50);  //Initialiser
  Init_MAX7219();
}
 
 
void loop()

   for(j=0;j<38;j++)
  {  //Faire défiler les caracteres a afficher
   for(int i=1;i<9;i++)  //Afficher un caractere à la fois
    Write_Max7219(i,disp1[j][i-1]);
   delay(500);  //Attente pour laisser le temps de lire
   
  }       
}


Image.Image.Image

Codage de nouveaux motifs et caractères
Il est facile de créer ses propres motifs personnalisés. 
Dessiner un caractère sur une grille carrée 8 x 8. On le décompose ensuite ligne par ligne.

Rappel du codage binaire
Image

Exemple pour afficher "A" il suffit de définir ceci dans un tableau
{0x8,0x14,0x22,0x3E,0x22,0x22,0x22,0x22}, //A
Image

Pour afficher le "1" 
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
Image

Pour afficher un damier alterné
{0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55},//damier
Image


Montage et schéma du module
Image

Image

Références
LED Matric kit 
http://linksprite.com/wiki/index.php5?t ... Matrix_Kit

User guide en PDF
https://s3.amazonaws.com/linksprite/Ard ... ide_V2.pdf

http://viewitem.eim.ebay.cz/MAX7219-Red ... 88970/item

MAX7219 driver
http://playground.arduino.cc/Main/MAX72 ... ngPrintout
Labels: Android, LED Matrix

Thanks for reading Arduino Uno LED 8x8 MAX7219 Led 8x32 - Projects Arduino. Please share...!

0 Comment for "Arduino Uno LED 8x8 MAX7219 Led 8x32 - Projects Arduino"

Popular Posts

Back To Top