top of page

Ce module est commandé grâce à une liaison SPI et doit être alimenté par une alimention 5V de forte puissance car  lorsque toutes les led sont allumées, nous avons affaire à une consommation proche de1,5A.

Chaque caractère affiché est codé sur 8 octets. Un logiciel MatrixToPixel  téléchargeable ici permet de générer automatiquement les 8 octets en fonction du caractère que l'on souhaite afficher. Libre à vous de laisser votre esprit créatif pour dessiner ce que vous souhaitez !!

Il existe plusieurs bibliothèques gérant ce module. Pour l'exemple ci-dessous, nous allons utiliser la bibliothèque Parola téléchargeable ici.  Ses principales fonctions sont :

  • MD_Parola matrice = MD_Parola(broche_CS, MAX_MODULES)  où broche_CS représente la broche de sélection du module et MAX_MODULES représente le nombre de modules commandés. Cette fonction permet de créer l'objet.

  • matrice.begin()  permet d'initialiser l'objet.

  • matrice.displayText("texte", PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT) permet d'afficher le texte au centre des modules.

  • matrice.displayAnimate() valide l'affichage du texte.

Dans l'univers Arduino, le module matrice à led est principalement utilisé dans des applications nécessitant un affichage.

Câblage :

Liste du matériel :

  • 1 Arduino Uno

  • 2 boutons poussoirs

  • 4 modules matrice à led

Exemple :

Nous souhaitons réaliser un compte à rebours commandé par deux boutons poussoirs, l'un permettant de lancer le décomptage et l'autre de mettre en pause.

Programme :

/* Matrice est un programme qui affiche le temps  se décrémentant toutes les secondes à partir de 3 minutes. 
 *  Le compte à rebours est lancé par un bouton Start et peut être mis en pause par un bouton Pause.
 */


#include <MD_Parola.h>                                                                                       // appel des bibliothèques
#include <MD_MAX72xx.h>
#include <SPI.h>


#define bouton_start 2                                                                                         // affectation des broches
#define bouton_stop 3
#define MAX_DEVICES 4
#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10


char message[4];                                                                                                // initialisation des variables
int minute=3;
int seconde=0;
int dizaine;
int unite;
unsigned long last_time = 0;
unsigned long time_now;


MD_Parola matrice = MD_Parola(CS_PIN, MAX_DEVICES);                          // création de l'objet matrice

void setup()
{
  pinMode(bouton_start, INPUT_PULLUP);                                                      // configuration des broches en entrée avec résistance de tirage
  pinMode(bouton_stop, INPUT_PULLUP);  
  matrice.begin();                                                                                               // initialisation de l'objet matrice
  matrice.displayText("03:00", PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);    // affichage de 03:00
  matrice.displayAnimate(); 
}

void loop()
{
do
  {
  
  } 
while (digitalRead(bouton_start)==1);                                                           // attente de l'appui sur Start

do                                                                                                                      // boucle tant que Stop est inactif
  {                                                                                                                       // décomptage du temps
  time_now = millis();
  if(time_now - last_time >= 1000) 
    {
    seconde=seconde-1;
    last_time=millis();
    }
  if (seconde<0)
    {
    seconde=59;
    minute=minute-1;
    }
   dizaine=seconde/10;
   unite=seconde%10;
   message[4]=unite+48;                                                                                 // conversion entier vers ASCII
   message[3]=dizaine+48;
   message[2]=58;
   message[1]=minute+48;
   message[0]=48;
   matrice.displayText(message, PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);                   // affichage du temps
   matrice.displayAnimate();
   
   if (minute<0)                                                                                                // fin du temps
    {
    matrice.displayText("00:00", PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);                     // affichage de 00:00
    matrice.displayAnimate();
}  

LE MODULE MATRICE A LED

Le module matrice à led comporte un circuit intégré MAX7219 pilotant une matrice de 64 led disposées en 8 lignes par 8 colonnes comme sur la figure suivante :

bottom of page