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.
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.
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];
}
}
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.
Lea otras preguntas en las etiquetas arduino led-matrix
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