G037 Grupo de 4 matrices LED 8×8 con SPI

Descripción
Las matrices LED son displays formados por un grupo de LEDS formando cuadrados o rectángulos de diferentes tamaños.

Controlar este tipo de matrices y  generar gráficos todo a mano directamente con arduino es muy difícil.

Estas matrices se usan junto a un controlador MAX7219, por lo sencillo y lo económico que es. La comunicación de este módulo se realiza a través de SPI, por lo que sólo necesitaremos 3 pines de Arduino a parte de la alimentación.
 
Estas matrices es permite combinar las todas las que se quieran de ellas, conectando la salida de una a la entrada de la siguiente. 

Para que estén lo menos separadas posible se suelda los terminales



Materiales
Placa de Arduino
1 Grupo de 4 matrices LED de 8x8
1 Matriz LED de 8x8 con MAX 7219
Protoboar, Cables de conexión y un cable USB para conectar arduino a PC y sirve además de alimentación.
 
Esquema 
L
a conexión de estas matrices a Arduino es muy sencilla. Nos basta con 5 pines, dos para la alimentación y 3 para el bus SPI. En este caso vamos a usar el Arduino UNO, pero si usáis otro tipo de Arduino tenéis que mirar qué pines son los que les corresponden al bus SPI: SS, MOSI  y SCK.

Montaje

Código
Recuerda descargar las librerías correspondientes.Aquí os dejos el programa completo Matrices
#include <MD_Parola.h>
#include <MD_MAX72XX.h>
#include <SPI.h>

// Tipo de hardware más habitual.
// Si el texto sale al revés prueba FC16_HW.
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 8
#define CS_PIN 10

MD_Parola matriz = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

const char* cadena[] =
{
  "Mago Miguelon ",
  "MAGO MIGUELON",
  "La Reina de Picas",
  "Magia y Electronica",
  "Suscribete",
  "El número 1",
  "In english too",
  "Domotica con Arduino",
  "Controla tu mundo con Arduino",
  "R. Madrid 1 - F.C. Barcelona 1",
  "The winner is ...  you!!! "
};

const uint8_t NUM_MENSAJES = sizeof(cadena) / sizeof(cadena[0]);

void setup()
{
  randomSeed(analogRead(A0));

  matriz.begin();
matriz.setIntensity(7);
matriz.displayClear();

matriz.setZone(0, 0, MAX_DEVICES - 1);
matriz.setZoneEffect(0, true, PA_FLIP_UD);   // gira 180° vertical
matriz.setZoneEffect(0, true, PA_FLIP_LR);   // corrige espejo si hiciera falta

  matriz.displayText(
    cadena[random(NUM_MENSAJES)],
    PA_CENTER,
    80,          // velocidad
    1000,        // pausa final
    PA_SCROLL_RIGHT,
    PA_SCROLL_RIGHT
  );
}

void loop()
{
  if (matriz.displayAnimate())
  {
    matriz.displayText(
      cadena[random(NUM_MENSAJES)],
      PA_CENTER,
      80,
      1000,
      PA_SCROLL_RIGHT,
      PA_SCROLL_RIGHT
    );

    matriz.displayReset();
  }
}

 
Sería interesante la idea de conectarle un módulo bluetooth y pasarle las cadenas desde un teléfono móvil.


No hay comentarios:

Publicar un comentario