fbpx

Como utilizar o módulo display matriz de LED 8 x 32 com MAX7219 e Arduino

Anteriormente vimos como utilizar o módulo display matriz de LED 8×8 com MAX7219. No tutorial de hoje, aprenderemos como controlar o módulo display de LED 8 x 32 com MAX7219 usando o Arduino.

O módulo display matriz de LED 8 x 32 com MAX7219 é composto por 4 matrizes de LED 8 x 8 com o CI MAX7219 interligadas em série, formando um total de 256 LEDs.


Figura ilustrativa de um Módulo display matriz de LED 8 x 32 com MAX7219.
Figura 1: Módulo display matriz de LED 8 x 32 com MAX7219.

Por utilizar o CI MAX7219, o módulo display matriz de LED 8 x 32 com MAX7219 é controlado por meio da interface SPI, sendo necessários o uso de apenas 3 pinos de dados do microcontrolador. A pinagem do módulo encontra-se detalhada na Figura 2.

Figura ilustrativa dos pinos do módulo display matriz de LED 8 x 32 com MAX7219
Figura 2: Pinos do módulo display matriz de LED 8 x 32 com MAX7219.

Na sua estrutura, temos do lado esquerdo 5 pinos para alimentação e comunicação com o microcontrolador, são eles VCC, GND, DIN, CS e CLK.

  • VCC: Alimentação de 5V;
  • GND: Aterramento do módulo;
  • DIN: Pino de dados de entrada de dados;
  • CS: Pino de seleção. Os dados são carregados para o registrador de deslocamento enquanto CS estiver configurado em nível baixo;
  • CLK: Pino de clock serial.

Agora que já conhecemos um pouco do módulo display matriz de LED 32 x 8 com MAX7219, vamos aprender como utilizá-lo em conjunto com o Arduino.

MATERIAIS NECESSÁRIOS

ESQUEMÁTICO DE LIGAÇÃO

Monte o circuito da Figura 3 utilizando módulo display matriz de LED 8 x 32 com MAX7219 e os jumpers.

Figura ilustrativa do circuito para utilização do módulo display matriz de LED 8 x 32 com MAX7219.
Figura 3: Circuito para utilização do módulo display matriz de LED 8 x 32 com MAX7219.

Ao montar o circuito observe os seguintes pontos:

  • O VCC do módulo deve ser conectado ao pino 5V do Arduino;
  • O GND do módulo deve ser conectado ao pino GND do Arduino;
  • O Pino DIN do módulo deve ser conectado ao pino digital 7;
  • O Pino CLK do módulo deve ser conectado ao pino digital;
  • O Pino CS do módulo deve ser conectado ao pino digital 5.

ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos programação do Sketch no Arduino IDE. Nesse projeto, vamos utilizar o módulo display matriz de LED 8 x 32 com MAX7219 para exibir o texto “Blog da Robótica” deslizando na tela.

Para fazer a utilização módulo display matriz de LED 8 x 32 com MAX7219, vamos utilizar as bibliotecas “MD_Parola.h” e “MD_MAX72xx.h”. Para instalá-las, abra o gerenciador de bibliotecas e busque pelo seus nomes, conforme as Figura 4 e 5.

Figura ilustrativa da instalação da biblioteca MD_Parola.
Figura 4: Biblioteca MD_Parola no gerenciador de bibliotecas do Arduino IDE.
Figura ilustrativa da instalação da biblioteca MD_MAX72XX.
Figura 5: Biblioteca MD_MAX72XX no gerenciador de bibliotecas do Arduino IDE.

Vamos entender a lógica de programação deste projeto a partir dos seguintes passos:

1. Incluir as bibliotecas

Iniciamos a programação incluindo as bibliotecas “MD_Parola.h”, “MD_MAX72xx.h” e “SPI.h”. Elas serão responsáveis por facilitar a comunicação com o módulo e exibir o texto no display.

2. Definir o tipo de hardware utilizado no módulo

Neste código, foi utilizado o hardware “DR1CR0RR0_HW (FC16_HW)”, mas pode ser que em alguns módulos não funcione.

Para solucionar este problema, basta alterar o tipo de hardware na variável HARDWARE_TYPE. A Tabela 1 exibe alguns tipos que podem ser utilizados.

DR0CR0RR0_HW
DR0CR0RR1_HW
DR0CR1RR0_HW(GENERIC_HW)
DR0CR1RR1_HW
DR1CR0RR0_HW
(FC16_HW)
DR1CR0RR1_HW
DR1CR1RR0_HW (PAROLA_HW)
DR1CR1RR1_HW (ICSTATION_HW)
Tabela 1: Tipos de Hardware para o módulo display matriz de LED 8 x 32 com MAX7219.

3. Definir o número CIs MAX7219

A variável MAX_DEVICES especifica o número de CIs MAX7219 usados. Cada display da matriz de LED possui 1 CI, portanto definimos MAX_DEVICES como 4.

4. Declarar os pinos do módulo conectados ao Arduino

Definimos as constantes PinDIN, PinCS e PinCLK correspondentes aos pinos digitais 11, 10 e 13 do Arduino.

5. Criar objeto do tipo MD_Parola

Em seguida, criamos o objeto do tipo MD_Parola passando como parâmetros o tipo de hardware, o pino conectado ao CS do módulo e a quantidade de CIs MAX7219.

6. Inicialização do módulo

Na função setup, chamamos a função P.begin() que será o responsável pela inicialização do módulo.

7. Definir texto que será mostrado

Para configurar o texto, utilizaremos a função P.displayText, que recebe os parâmetros (texto, alinhamento, velocidade, pausa, efeito de entrada, efeito de saída).

  • Texto: Texto que deverá ser exibido no display. Em nosso exemplo: Blog da Robotica. Observação: O texto deve estar entre aspas duplas;
  • Alinhamento: O texto pode ser alinhado à esquerda (PA_LEFT), centro (PA_CENTER) ou direito (PA_RIGHT);
  • Velocidade: Será responsável por definir o tempo, em milissegundos, entre os frames de animação, quanto maior seu valor, mais lenta será a exibição do texto;
  • Pausa: Terá a função de definir o tempo, em milissegundos, entre as animações, caso houver mais de uma mensagem a ser exibida;
  • Efeitos de entrada e saída: Define os efeitos de entrada e saída do texto. Estes efeitos podem ser encontrados no próprio exemplo;
  • “Parola_Animation_Catalog” da biblioteca MD_Parola. Para acessar, basta seguir o caminho: Arquivo > Exemplos > MD_Parola > Parola_Animation_Catalog, conforme mostrado na Figura 6.
Figura ilustrativa do Catálogo de animações da biblioteca Parola.
Figura 6: Catálogo de animações da biblioteca Parola

Também foi chamada a função “P.displayAnimate()” que será responsável por animar a tela com os parâmetros definidos no  “P.displayText”.

Ao final, o Sketch deste projeto ficará da seguinte maneira:

/*
  --  MÓDULO MATRIZ DE LED 8 X 32 COM MAX7219    --
  =================================================
  === BLOG DA ROBOTICA - www.blogdarobotica.com ===
  =================================================
  Autor: Jonas Souza
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  =================================================
  === CASA DA ROBOTICA - www.casadarobotica.com ===
  =================================================
  Facebook: facebook.com/casadaroboticaoficial
  Instagram:@casadarobotica
  ==================================================
*/

//Inclusão das bibliotecas
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define HARDWARE_TYPE MD_MAX72XX::DR1CR0RR0_HW // definição do tipo de hardware

#define MAX_DEVICES 4 // Número de displays de leds a serem utilizados
#define PinDIN  11 //Pino DIN se conecta com a porta digital 11 do arduino
#define PinCS 10 //Pino CS se conecta com a porta digital 10 do arduino
#define PinCLK  13 //Pino CLK se conecta com a porta digital 13 do arduino

MD_Parola P = MD_Parola(HARDWARE_TYPE, PinCS, MAX_DEVICES); //Manda as informações definidas para a biblioteca 

void setup(){
  P.begin(); //Incia a comunicação de dados
}

void loop(){
  if (P.displayAnimate()) //será responsável por animar a tela com os parâmetros definidos no  “P.displayText”.
    P.displayText("Blog da Robotica", PA_CENTER, 40, 1, PA_SCROLL_LEFT, PA_SCROLL_LEFT); //Configura o texto que será exibido
}

O funcionamento do projeto pode ser visualizado no Vídeo 1:

Vídeo 1: Funcionamento da matriz de LED 8×32 com MAX7219 e Arduino.

Espero ter ajudado,

Obrigado a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Jonas Souza

Dúvidas? Deixe seu comentário

Jonas Souza

Graduando em Engenharia Elétrica. Atua no setor desenvolvimento de tutoriais para o Blog da Robótica.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.