blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Como Funciona a Matriz de LED
  • MAX7219
  • Utilizando o módulo matriz de LED com o Arduino
  • Conclusão
  • Sobre o Autor
Componentes Eletronicos

Tutorial Matriz de LED no Arduino

Eletrogate 22 de julho de 2021Atualizado em: 20 set 2022

Introdução

Com certeza, você já deve ter ouvido falar sobre os LEDs, pois ele está presente em diversos lugares, não apenas na área da eletrônica. Isso porque os LEDs possuem diversas aplicações, por exemplo, as lâmpadas atuais são de LED, pois possui menos perda de energia com o calor; na sinalização, para saber se algo está ligado ou desligado; para informar dígitos, como é o caso dos displays de sete segmentos; ou até mesmo para escrever ou fazer animações, como é o caso da matriz de LED.

Os diodos são componentes eletrônicos que permitem a passagem de corrente elétrica em apenas um sentido e possuem diversas aplicações. O LED (Light Emitting Diode) é um diodo que, quando percorrido por uma corrente elétrica, emite luz.

Com os conhecimentos adquiridos neste post, você será capaz de utilizar as matrizes de LED no seu projeto, pois serão explicados em detalhe o seu funcionamento e a sua programação no IDE do Arduino.


Como Funciona a Matriz de LED

Assim como os displays de sete segmentos, que possuem duas configurações, os chamados anodo comum e o catodo comum, a matriz de LED também possui duas configurações, como podemos visualizar a seguir.

Blog-Eletrogate-Matriz-Led-1

Figura 1 – Anodo comum em relação a linha.

Blog-Eletrogate-Matriz-Led-2

Figura 2 – Catodo comum em relação a linha.

Para sabermos qual das configurações a sua matriz de LED possui, devemos pesquisar pelo datasheet de seu componente.

Em ambos os casos, o funcionamento é muito similar, por exemplo, para acendermos o LED localizado na linha 4 e coluna 5, e se possuímos uma matriz com a configuração da Figura 1, devemos colocar a linha 4 no estado HIGH e a coluna 5 em estado LOW, como pode ser visto a seguir.

Blog-Eletrogate-Matriz-Led-3

Figura 3 – Acendendo o LED da linha 4 e coluna 5.

Por outro lado, se possuímos uma matriz com a configuração da Figura 2, devemos colocar a linha 4 no estado LOW e a coluna 5 em estado HIGH, para termos uma polarização direta no LED e assim acendê-lo, como pode ser visto a seguir.

Blog-Eletrogate-Matriz-Led-4

Figura 4 – Acendendo o LED da linha 4 e coluna 5.

Porém, note que em ambos os casos é necessário a limitação de corrente para evitar a queima do LED.

Cuidados na utilização da matriz de LED

Note que teremos um problema, se quisermos acender o LED da linha 4 e coluna 5, mas também o LED da linha 6 e coluna 4, acenderá quatro LEDs e não apenas dois, como podemos ver a seguir.

Blog-Eletrogate-Matriz-Led-5

Figura 5 – Problema ao tentar acionar 2 LEDs.

Para resolver esse problema, temos que utilizar a técnica da multiplexação, que consiste em ligar uma linha ou coluna por vez, ou seja, os LEDs que queremos que acenda ficará piscando, mas com uma frequência tão alta que o olho humano não consegue perceber. Por exemplo, para conseguirmos acionar os dois LEDs da matriz com a configuração da Figura 5 devemos colocar, primeiramente, a linha 4 em estado HIGH e a coluna 5 em LOW, depois retornar a linha 4 em estado LOW e a coluna 5 em HIGH. Após isso, devemos colocar a linha 6 em HIGH e a coluna 4 em LOW, depois retornar a linha 6 em estado LOW e a coluna 4 em HIGH e fazer o loop. Assim, teremos a impressão de que apenas dois LEDs estão ligados, contornando o problema.

Outro problema que temos ao utilizar a matriz de LED é a utilização de 16 portas do Arduino, o que é algo inviável. Para resolvermos esse problema, podemos utilizar o circuito integrado MAX7219, que será explicado a seguir.


MAX7219

Esse circuito integrado foi projetado para a multiplexação, sendo usado para controlar displays de sete segmentos de até 8 dígitos ou uma matriz de LED. A utilização desse circuito integrado facilita a programação, pois já existe uma biblioteca para esse componente, podendo facilmente escrever caracteres, controlar a intensidade da luz dos LEDs, entre outras funções. Além dessa facilidade, com a utilização desse circuito integrado, passamos a utilizar apenas 3 pinos para o controle da matriz de LED, que são o DIN, CS e o CLK.

A conexão da matriz de LED no MAX7219 é um pouco complexa e depende da configuração da sua matriz de LED, tendo que olhar o datasheet do seu componente para identificar a numeração correta de cada pino para fazer as ligações. Porém, na loja da Eletrogate podemos encontrar o módulo matriz de LED, que já possui todas as conexões feitas, pronta para o uso


Utilizando o módulo matriz de LED com o Arduino

Agora faremos as conexões do módulo matriz de LED na placa Arduino e a sua programação.

Materiais necessários para o projeto Matriz de LED no Arduino

  • Arduino Uno
  • Módulo matriz de LED max7219
  • Jumpers

Conexão

Conecte o módulo matriz de LED como mostrado a seguir.

Blog-Eletrogate-Matriz-Led-Ligacao

Instalando a biblioteca MD_MAX72XX

Para instalarmos a biblioteca MD_MAX72XX, devemos seguir os seguintes passos:

No IDE do Arduino, Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Como visto a seguir:

Blog-Eletrogate-Matriz-Led-Arduino-IDE-2

Em seguida, digite MD_MAX72XX na busca e instale a biblioteca mostrado a seguir.

Blog-Eletrogate-Matriz-Led-Arduino-IDE-3

Código

/***********************************
 *     Incluindo a biblioteca      *
 ***********************************/
#include <MD_MAX72xx.h>

/***********************************
 *           Definicoes            *
 ***********************************/
#define  DELAYTIME  120  //Controla a velocidade em que o texto se desloca

#define TIPO_DO_HARDWARE MD_MAX72XX::GENERIC_HW  // Modelo da matriz de LED

#define MAX_MODULOS  1   // Quantidade de matriz de LED que o seu projeto possui

#define DATA_PIN  10  // Pino do DIN
#define CS_PIN    9   // Pino do CS
#define CLK_PIN   8   // Pino do CLK


/**********************************
 *     Criando o objeto matriz    *
 **********************************/
MD_MAX72XX matriz(TIPO_DO_HARDWARE, DATA_PIN, CLK_PIN, CS_PIN, MAX_MODULOS);


/**********************************
 *             Setup              *
 **********************************/
void setup() 
{
  matriz.begin();
  matriz.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY/2);  //Controla a intensidade dos LEDs e MAX_INTENSITY é a intensidade maxima
}


/**********************************
 *         Loop principal         *
 **********************************/
void loop() // Loop principal
{
  escrever_texto("Eletrogate   ");  //Escreve na matriz o texto passado como parâmetro, que no caso é Eletrogate
}


/**********************************
 *     Funcao escrever_texto      *
 **********************************/
void escrever_texto(const char *p)  //Função que escreve o texto
{
  byte charWidth;
  byte cBuf[8];  

  matriz.clear();  //Desliga todos os LEDs da matriz

  while (*p != '\0')
  {
    charWidth = matriz.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf);

    for (byte i = 0; i <= charWidth; i++)  
    {
      matriz.transform(MD_MAX72XX::TSL);  //TSL = desloca um pixel para a esquerda
      if (i < charWidth)
        matriz.setColumn(0, cBuf[i]);
      delay(DELAYTIME);
    }
  }
}

Funcionamento

https://blog.eletrogate.com/wp-content/uploads/2021/07/Matriz-de-LED.mp4

Conclusão

Agora você pode utilizar a matriz de LED para fazer diversos projetos, como letreiros e até mesmo animações. Note que é possível juntar diversas matrizes para formar um painel e melhorar a visualização. Na loja da Eletrogate podemos encontrar um módulo com 4 matrizes de LED!

A biblioteca utilizada possui diversas outras funções além do que foi mostrado, logo, recomendo que olhe a documentação da biblioteca para obter mais funcionalidades.

Muito obrigado por ter lido até aqui e bons estudos!

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Bruno Daigo Yamamoto

Cursando engenharia eletrônica. Apaixonado por eletrônica, programação e matemática.


Eletrogate

22 de julho de 2021 Atualizado em: 20 set 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Componentes Eletronicos

Conceitos Básicos sobre Solda Eletrônica

Eletrogate26 de janeiro de 2023

Este post aborda os tipos de ferro de solda, tipos de solda, acessórios para o processo e procedimentos para manutenção do ferro de solda.

Componentes Eletronicos

Conceitos Básicos sobre Solda Eletrônica

Eletrogate26 de janeiro de 2023

Este post aborda os tipos de ferro de solda, tipos de solda, acessórios para o processo e procedimentos para manutenção do ferro de solda.

Sensores

MPU6050 com BluePill e STM32CubeIDE

Eletrogate19 de janeiro de 2023

Neste post, veremos como medir aceleração e velocidade angular utilizando o MPU6050 junto de uma BluePill programada pelo STM32CubeIDE.

Sensores

MPU6050 com BluePill e STM32CubeIDE

Eletrogate19 de janeiro de 2023

Neste post, veremos como medir aceleração e velocidade angular utilizando o MPU6050 junto de uma BluePill programada pelo STM32CubeIDE.

Robótica

Controle de Corrente em Servomotores

Eletrogate12 de janeiro de 2023

Este post trata acerca de um simples sistema que visa ajustar o período do pulso de controle de um servomotor evitando que este permaneça em um estado de alto consumo de corrente.

Robótica

Controle de Corrente em Servomotores

Eletrogate12 de janeiro de 2023

Este post trata acerca de um simples sistema que visa ajustar o período do pulso de controle de um servomotor evitando que este permaneça em um estado de alto consumo de corrente.

Tipos de Arduino

BluePill com STM32CubeIDE

Eletrogate6 de janeiro de 2023 Atualizado em: 09 jan 2023

Neste post, desenvolveremos, utilizando recursos do STM32CubeIDE, um simples piscaLED para a placa BluePill.

Tipos de Arduino

BluePill com STM32CubeIDE

Eletrogate6 de janeiro de 2023 Atualizado em: 09 jan 2023

Neste post, desenvolveremos, utilizando recursos do STM32CubeIDE, um simples piscaLED para a placa BluePill.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.