Вы находитесь на странице: 1из 9

Tutorial - Arduino y el MAX7219 LED IC controlador de

pantalla
Utilice el controlador de pantalla Maxim MAX7219 LED con Arduino en
el captulo 56 de nuestros tutoriales Arduino. El primer captulo est
aqu, la serie completa se detalla aqu.
Actualizacin - 01/04/15 - Este artculo est pendiente una reescritura, por favor abstenerse de comentarios y preguntas hasta que
se publique la nueva versin.
introduccin
Tarde o temprano, los entusiastas de Arduino y principiantes se
encontrar con el MAX7219 IC. Y por una buena razn, es un mtodo
sencillo y algo de bajo costo de controlar 64 LEDs, ya sea en la matriz
o en forma de pantalla numrica. Adems, pueden ser encadenados
juntos para controlar dos o ms unidades para an ms LEDs. En
general - son muy divertido y tambin puede ser muy til, as que
vamos a empezar.
He aqu un ejemplo de un MAX7219 y otro IC que es un equivalente
funcional, la AS1107 de Austria Microsystems. Es posible que no vea
el AS1107 alrededor de mucho, pero puede ser ms barato - as que
no tengas miedo de usar ese lugar:

Cuando vaya a comprar MAX7219s puede observar las fluctuaciones


de precios salvajes entre varios vendedores. Hemos investigado eso y
tener un artculo separado para su consideracin.
A primera vista se puede pensar que se necesita una gran cantidad
de bienes races, pero ahorra algunos tambin. Como se mencion
anteriormente, el MAX7219 puede controlar por completo 64 LEDs
individuales - incluyendo el mantenimiento de la igualdad de brillo, y
que le permite ajustar el brillo de los LED, ya sea con el hardware o
software (o ambos). Puede actualizar los LEDs en alrededor de 800
Hz, por lo que no es ms vacilante, pantallas LED irregulares.
Usted puede incluso cambiar la visualizacin fuera para el modo de
ahorro de energa, y todava enviarlo datos mientras est apagado. Y
otra cosa buena - cuando se enciende, mantiene los LED apagado, as
que no hay pantallas extravagantes durante los primeros segundos
de funcionamiento. Para ms informacin tcnica, aqu est la hoja de
datos: MAX7219.pdf. Ahora, para ponerla a trabajar para nosotros demostraremos utilizando uno o ms 8 x 8 pantallas de matriz de
LED, as como 8 dgitos de 7 segmentos nmeros de LED.
Antes de continuar, descargue e instale la biblioteca LedControl
Arduino ya que es esencial para el uso de la MAX7219.
El control de las pantallas de matriz de LED con el MAX7219
En primer lugar, vamos a examinar el lado del hardware de las cosas.
Aqu est el diagrama de pines para el MAX7219:

El MAX7219 impulsa ocho LEDs a la vez, y por los bancos de


conmutacin rpida de ocho ojos no ven los cambios. Cableado de
una matriz es muy simple - si tiene una matriz comn con el siguiente
esquema:

conectar los pines MAX7219 etiquetados DP, A ~ F a los pines fila


respectivamente, y los pasadores MAX7219 etiquetados DIG0 ~ 7 a
los pasadores de columna, respectivamente. Un circuito total de
ejemplo, con la matriz anterior es como sigue:

El circuito es muy sencillo, EXCEPTO Que TENEMOS Una Resistencia


Entre 5V y el pasador 18. El MAX7219 MAX7219 Es Un Controlador de
LED de corriente constante, y el valor de la Resistencia se utilizacin
prr establecer el Flujo de corriente a los LEDs. Echa ONU Vistazo a la
tabla de la page vez una vez de la hoja de Datos:

Usted necesita saber el voltaje y reenviar actual para su matriz de


LED o pantalla numrica, entonces coincidir con el valor en la tabla.
Por ejemplo si usted tiene un LED 2V 20 mA, el valor de la resistencia
ser 28k (los valores estn en kW). Por ltimo, la serie en MAX7219,
pernos de carga y el reloj ir a Arduino pines digitales que se
especifican en el boceto. Vamos a llegar a que en el momento, pero
antes de que volvamos a los mdulos de la matriz.
En los ltimos meses se ha producido una proliferacin de kits de bajo
costo que contienen un MAX7219 o equivalente, y una matriz de LED.

stos son grandes para experimentar con y usted puede ahorrar


mucho trabajo - algunos ejemplos de los cuales se muestran a
continuacin:

En la parte superior es un ejemplo de eBay, y la pareja en


el fondo son las unidades de una revisin reciente kit. Usaremos estos
para nuestras demostraciones tambin.
Ahora para el dibujo. Usted necesita las dos lneas siguientes al inicio
del boceto:

La primera tira en la biblioteca, y la segunda lnea configura una


instancia de controlar. Los cuatro parmetros son los siguientes:
el pin digital conectado al pin 1 del MAX7219 ("datos en")

el pin digital conectada a la patilla 13 del MAX7219 ("CLK o reloj")


el pin digital conectada a la patilla 12 del MAX7219 ("CARGA")
El nmero de MAX7219s conectado.
Si usted tiene ms de un MAX7219, conecte el DOUT ("datos fuera")
pin de la primera MAX7219 al pin 1 de la segunda, y as
sucesivamente. Sin embargo los pasadores CLK y LOAD estn
conectados en paralelo y luego de vuelta a la Arduino.
Dos funciones siguientes, ms vitales que normalmente pondra en
void setup ():

La primera lnea anterior activa los LEDs conectados a la


MAX7219 sucesivamente. Si se establece en TRUE, puede enviar
datos a la MAX7219 pero los LEDs se quedar fuera. La segunda lnea
ajusta el brillo de los LED en diecisis etapas. Para ambos de esas
funciones (y todos los otros de la LedControl) el primer parmetro es
el nmero de la MAX7219 conectado. Si usted tiene uno, el parmetro
es cero ... por dos MAX7219s, es 1 y as sucesivamente.
Por ltimo, para activar un LED en la matriz de encendido o
apagado, el uso individual:

que enciende un LED situado en la columna, fila conectado a


MAX7219 # 1. Cambie TRUE FALSE para apagarlo. Estas funciones se
demuestran en el siguiente boceto:

#include "LedControl.h" // need the library


LedControl lc=LedControl(12,11,10,1); //

// pin 12 is connected to the MAX7219 pin 1


// pin 11 is connected to the CLK pin 13

// pin 10 is connected to LOAD pin 12


// 1 as we are only using 1 MAX7219

void setup()
{
// the zero refers to the MAX7219 number, it is zero for 1 chip
lc.shutdown(0,false);// turn off power saving, enables display
lc.setIntensity(0,8);// sets brightness (0~15 possible values)
lc.clearDisplay(0);// clear screen
}
void loop()
{
for (int row=0; row<8; row++)
{
for (int col=0; col<8; col++)
{
lc.setLed(0,col,row,true); // turns on LED at col, row
delay(25);
}
}

for (int row=0; row<8; row++)


{
for (int col=0; col<8; col++)
{
lc.setLed(0,col,row,false); // turns off LED at col, row
delay(25);
}
}
}

Вам также может понравиться