¿Cómo conectar LED Matrix a Arduino utilizando MAX 7219?

9

Tengo 2 8x8 LED Matrix , un chip MAX7219. Me pregunto cómo puedo conectarlo a Arduino Duemilanove. He estado buscando en Google pero no pude averiguar cómo.

    
pregunta Butzke

2 respuestas

11

Bryan Chung tenía un tutorial aún disponible en Archivo de Internet sobre cómo conectar una matriz LED a un Arduino utilizando un MAX7219:

  

Aquí hay un experimento con un 8 × 8 LED   matriz, impulsada por un MAX7219 IC,   controlado a través de un Arduino   placa de microcontrolador. Un PCB personalizado   ha sido realizado por Tan de DinoTech a   poner en orden todos los cables que conectan el   Matriz de LED y el IC. Viene con un   fuente de alimentación separada de 12V, en orden   no drenar todo de la   Tablero Arduino.

     

Solo se necesitan 4 cables para controlar   el controlador IC MAX7219. Ellos son los

     

Cierre de reloj de datos / cargar tierra

     

Los datos y los pines del reloj deben coincidir   los del comando shiftOut () en   Arduino. El pasador de cierre dará un BAJO   al pulso ALTO después del cambio de salida   mando. He escrito el original   Programa para el sello de jabalina. Ya que   Arduino solo puede desplazar 8 bits de datos,   Tengo que usar 2 comandos separados para   Desplazar los bytes superior e inferior   al MAX7219, que necesita un 2 bytes.   control para cada comando.

     

Para la estructura de datos del LED 8 × 8   matriz, yo uso una matriz de bytes - matriz de   longitud 8. Cada fila en la matriz   corresponde a la dimensión Y. Cada   bit en una fila corresponde a la X   dimensión. El dígito 1 está encendido; 0 está desactivado   La dirección X se invierte y hay   También es un cambio de 1 bit. los   La función updateLED () se encarga de esto.

     

El primer programa es una animación de un   movimiento de una sola línea.

int CLOCK = 12;
int LATCH = 13;
int DATA  = 11;
byte matrix[8];
int idx = 0;

void setup() {
  pinMode(CLOCK, OUTPUT);
  pinMode(LATCH, OUTPUT);
  pinMode(DATA,  OUTPUT);
  digitalWrite(CLOCK, LOW);
  digitalWrite(LATCH, LOW);
  digitalWrite(DATA,  LOW);
  initLED();
  clearLED();
}

void loop() {
  for (int j=0;j<8;j++) {
    updateLED(idx, j, true);
  }
  refreshLED();
  delay(200);
  for (int j=0;j<8;j++) {
    updateLED(idx, j, false);
  }
  refreshLED();
  delay(100);
  idx++;
  idx %= 8;
}

void ledOut(int n) {
  digitalWrite(LATCH, LOW);
  shiftOut(DATA, CLOCK, MSBFIRST, (n>>8));
  shiftOut(DATA, CLOCK, MSBFIRST, (n));
  digitalWrite(LATCH, HIGH);
  delay(1);
  digitalWrite(LATCH, LOW);
}

void initLED() {
  ledOut(0x0B07);
  ledOut(0x0A0C);
  ledOut(0x0900);
  ledOut(0x0C01);
}

void clearLED() {
  for (int i=0;i<8;i++) {
    matrix[i] = 0x00;
  }
  refreshLED();
}

void refreshLED() {
  int n1, n2, n3;
  for (int i=0;i<8;i++) {
    n1 = i+1;
    n2 = matrix[i];
    n3 = (n1<<8)+n2;
    ledOut(n3);
  }
}

void updateLED(int i, int j, boolean b) {
  int t = 1;
  int n = 0;
  int m = 0;
  if (j==0) {
    m = 7;
  }
  else {
    m = j-1;
  }
  n = t<<m;
  if (b) {
    matrix[i] = n | matrix[i];
  }
  else {
    n = ~n;
    matrix[i] = n & matrix[i];
  }
}
    
respondido por el littlebirdceo
2

Lo siento si es un poco tarde para ti, pero acabo de escribir un publique acerca del uso del MAX7219 con matrices LED y pantallas LED de 7 segmentos.

    
respondido por el user1307

Lea otras preguntas en las etiquetas

Comentarios Recientes

Después de verificar que este proyecto funciona con MAX 7219 (resistencias de 12 y 24 ohmios), puede tomar fácilmente una matriz de LED y conectarla a un Arduino Pro Micro. Nota: No necesita cualquier carcasa de LED (a diferencia de lo mencionado aquí), ya que la LED Neo Neo Matrix seguirá este circuito visualmente (Degenerate Arduino UNO). La matriz de LED portátil + circuito de fuente de alimentación de alta corriente permite salidas de flujo de 30 mA desde Delta al núcleo Max por MAX 8500 - 1000 Potencia de... Lees verder