Matrice des LED 8X8 avec Arduino

Objectifs et analyse de fonctionnement 

Le projet consiste la gestion d’une matrice des LED 8X8 à base d’Arduino en utilisant le circuit MAX7219CNG. Le projet électronique utilise une libraire pour la gestion du circuit MAX7219CNG avec une liaison SPI. Ce mini projet mis en évidence l’utilisation de la libraire avec d’autres fonctions secondaires (décalage, conversion, …).

Fonctionnement de la matrice des LEDs 8×8

Projet électronique  Gestion d'une matrice des LED avec Arduino - matrice led
La matrice des LED est constituée de 8 lignes et 8 colonnes. On peut assimiler la matrice à un tableau 1D de 8 éléments, chaque élément du tableau est codé sur 8 bits Ex B00001111 ou 0x0F, dans la figure ci-dessous illustre le passage d’une matrice 8×8 à un tableau sur 8 éléments de type Bye ou Unsigned char. On verra dans la suite la fonction qui permet d’afficher le code dans la matrice 8×8.
Le module utilisé est basé sur MAX7219 avec une liaison série pour les données. Le bus SPI est constitué de trois fils :
  • CS : Chip Select pour l’activation du modèle
  • CLK : l’horloge synchrone pour les données. L’horloge définie la vitesse de transmission des données série
  • DIN : La donnée série sur 8 bits
Plus des détails sur la transmission série : SPI 
Projet électronique  Gestion d'une matrice des LED avec Arduino - Matrice fonctionnement

Lien vers une Application gratuite de gestion d’une matrice 8×8 des LED

Commentaires sur le programme

  • void int2BitArray(unsigned char dataIn,unsigned char taille, byte *dataArray)
La fonction int2BitArray permet de convertir une variable char en un tableau sur N bits (N=8 bits)
Ex1 : pour dataIn=10, taille=8 alors la variable de sortie dataArray[8]={0,0,0,0,1,0,1,0]
         ( équivalant à B00001010)
Ex2 : dataIn=127, taille=8 alors la variable de sortie dataArray[8]={0,1,1,1,1,1,1,1]
         ( équivalant à B011111111)
  • void DataShiftArray(unsigned char NumShift,unsigned char taille, byte *DataIn, byte *DataOutShift)
La fonction DataShiftArray permet de décaler à droit un tableau de longueur « taille » de bits (tableau binaire) DataIn, le résultat est stocké puis retourné dans le tableau DataOutShift. Au début le tableau DataOutShift est supposé initialisé à 0.
Ex : NumShift=3, taille = 8, DataIn[8]={1,1,1,1,0,0,0,0} alors DataOutShift[8]={0,0,0,1,1,1,1,0}.
L’objectif de la fonction est de décaler un objet dans la matrice 8×8 des LED.

Assemblage en cascade des matrices

Chaque matrice est définie par sont indice, la première à l’indice 0, la deuxième 1 … Pour ecrire dans une matrice il suffit de préciser l’indice de la matrice :)
Projet électronique  Gestion d'une matrice des LED avec Arduino

Les fonctions disponibles dans la libraire 8*8

Projet électronique  Gestion d'une matrice des LED avec Arduino - photos projet (7)
Projet électronique  Gestion d'une matrice des LED avec Arduino - photos projet (6)
Projet électronique  Gestion d'une matrice des LED avec Arduino - photos projet (4)
Projet électronique  Gestion d'une matrice des LED avec Arduino - photos projet (3)
Projet électronique  Gestion d'une matrice des LED avec Arduino - photos projet (1)

Un petit commentaire de vous, un Grand encouragement pour nous :)

- Bon Courage –


EmoticonEmoticon