[Tuto] Matrice de LED

Posté sur: août 13, 2013

Catégories: Arduino

Tags: arduino , led , matrice , tuto

Matrice de LED

Le but de ce montage est de créer une matrice de LED. Ce montage peut soit être réalisé avec un composant spécifique soit en assemblant de LED indépendante.

Composants nécessaires :

Un Arduino

9 LED ou une matrice de LED

3 résistances (Optionnel)

Une Breadboard

Des fils de connexion

 
Composant


 

Principe du montage :

Nous allons créer un cadriage avec les LED de manière à avoir un montage comme ceci :


Réalisation du montage :


  • Montage des composants sur la Breadboard

  • Tout le montage se réalise sur la plaque prévu à cet effet (Breadboard). En se basant sur ce que vous avez vu il faut reproduire le montage ci-contre. La cathode de la LED (patte la plus courte) va être mise sur les colonnes alors que l'anode (patte la plus longue) forme les lignes.

Les résistances sont ajoutées en dernier ce qui doit vous donner :


Breadboard 2

 

 
schema


LED

Breadboard 3
Breadboard 4

 
Montage

Câblage de la Breadboard

On connecte ensuite la Breadboard au Arduino. Le câblage utilisé pour l'exemple est :

Colonne en Digital 5, 6, 7

Lignes en Digital 10, 11, 12

 
Montage 2

 Programmation du montage :

Le programme a été conçu pour être évolutif et vous permettre d'augmenter facilement le nombre de LEDs. Il doit définir toutes les entrées / sorties. Ensuite il va faire 3 séquences :

Allumer toutes les lignes une à une puis les éteindre une à une

Allumer toutes les colonnes une à une puis les éteindre une à une

Allumer les LEDs une à une

#define DIM 3 // x/y dimension - 3x3 matrix
#define DELAY 200 // Temps de pose entre 2 combinaisons

int colonnes[DIM] = {5,6,7}; // Colonne
int lignes[DIM] = {10,11,12}; // Ligne

void setup(){
// Définition des colonnes comme sorties
for(int i = 0; i<DIM; i++){
pinMode(colonnes[i],OUTPUT); // Definir comme sortie
digitalWrite(colonnes[i],LOW); // Mettre a zero
}
// Définition des lignes comme sorties
for(int i = 0; i<DIM; i++){
pinMode(lignes[i],OUTPUT); // Definir comme sortie
digitalWrite(lignes[i],LOW); // Mettre a zero
}
}

void loop() {

// Premiere sequence
// Allumer chaque ligne une a une
for(int i = 0; i<DIM; i++){
digitalWrite(lignes[i],HIGH);
delay(DELAY);
}
// Eteindre chaque ligne une a une
for(int i = DIM-1; i>=0; i--){
digitalWrite(lignes[i],LOW);
delay(DELAY);
}

// Deuxieme sequence
// Nous commencons par mettre toutes les sorties a l etat haut
for(int i = 0; i<DIM; i++){
digitalWrite(colonnes[i],HIGH);
}
for(int i = 0; i<DIM; i++){
digitalWrite(lignes[i],HIGH);
}
// Pour allumer les colonnes nous les passons a l etat bas
for(int i = 0; i<DIM; i++){
digitalWrite(colonnes[i],LOW);
delay(DELAY);
}
// Eteindre chaque colonne une a une
for(int i = DIM-1; i>=0; i--){
digitalWrite(colonnes[i],HIGH);
delay(DELAY);
}

// Troisieme sequence
for(int i = 0; i<DIM; i++){
digitalWrite(lignes[i],LOW); // Remettre a zero les lignes
}
// Allumer les LEDs une a une
for(int ligne = 0; ligne<DIM; ligne++){
digitalWrite(lignes[ligne],HIGH); // Activer une ligne
for(int colonne = 0; colonne<DIM; colonne++){
digitalWrite(colonnes[colonne],LOW); // Activer la colonne
delay(DELAY); // Attendre
digitalWrite(colonnes[colonne],HIGH); // Desactiver la colonne
}
digitalWrite(lignes[ligne],LOW); // Desactiver la ligne
}

// Remise des sorties a l etat bas
for(int i = 0; i<DIM; i++){
digitalWrite(colonnes[i],LOW);
}
for(int i = 0; i<DIM; i++){
digitalWrite(lignes[i],LOW);
}
}

Il reste à brancher le Arduino pour compiler le programme et le téléverser.

Une fois terminé cela nous donne :

ON 1
 
ON 2

Pour aller plus loin :

Il est possible de rendre autonome le montage en lui ajoutant un coupleur de pile. Il est aussi possible de modifier les temps allumés et éteints. Il est possible de créer vos propres séquences, de les cadencer en fonctions de l'état de vos capteurs...

Il est aussi possible de réaliser des systèmes à plus grande échelle comme cette table :

Commentaires

  • kengni
    mai 6, 2017
  • admin
    mai 29, 2016
  • youll
    mai 27, 2016

laissez un commentaire

Se connecter