ESP32 - Matriz de LED
O display de matriz de LED, também conhecido como display de LED ou display de matriz de pontos, é amplamente utilizado. Neste tutorial, vamos aprender:
- Matriz de LED
- Como conectar o ESP32 a uma matriz de LED 8x8
- Como conectar o ESP32 a uma matriz de LED 32x8
- Como programar o ESP32 para exibir texto, números e efeitos animados na matriz de LED.
Depois disso, você pode adaptar facilmente o código para outras matrizes de LED, como matriz de LED 16x8, matriz de LED 64x8 ...
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre a Matriz de LED

Existem muitos tipos de matriz de LED. Com o ESP32, a matriz de LED baseada no MAX7219 é amplamente utilizada. A matriz de LED baseada no MAX7219 tem as seguintes características:
- A unidade básica de uma matriz de LED é um bloco
- Cada bloco tem uma matriz de LED 8x8 (64 LEDs) e um driver MAX7219.
- Existem dois formatos de bloco populares: o módulo genérico e o módulo FC-16.
- Uma matriz de LED pode ser composta por um único bloco ou por vários blocos em cascata (daisy-chain)
- Você pode comprar uma matriz de LED pronta com vários blocos (por exemplo, 4 em 1, 8 em 1)
- Você também pode comprar vários blocos e ligá-los para formar uma matriz de LED do tamanho desejado.
- Você vai declarar o tamanho da matriz de LED que usa no código do ESP32.
Pinagem

Uma matriz de LED é formada por um ou vários blocos. Cada bloco inclui dois grupos de pinos:
- Grupo de pinos de entrada:
- VCC: conecta ao 5V.
- GND: conecta ao GND.
- DIN é o pino de dados, conecte-o a qualquer pino digital do ESP32.
- CS: Chip Select, conecte-o a qualquer pino digital do ESP32.
- CLK: pino de clock, conecte-o a qualquer pino digital do ESP32.
- Grupo de pinos de saída:
- VCC: conecta ao VCC do grupo de pinos de entrada do próximo módulo.
- GND: conecta ao GND do grupo de pinos de entrada do próximo módulo.
- DOUT: Data Out (saída de dados), conecta ao pino DIN do grupo de pinos de entrada do próximo módulo.
- CS: conecta ao CS do grupo de pinos de entrada do próximo módulo.
- CLK conecta ao CLK do grupo de pinos de entrada do próximo módulo.
Diagrama de Ligação
Se a matriz de LED for formada por um único bloco:
- Conecte o grupo de pinos de entrada ao ESP32
- Deixe o grupo de pinos de saída desconectado

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.

This image is created using Fritzing. Click to enlarge image
Se a matriz de LED for pronta com vários blocos:
- Conecte o grupo de pinos de entrada ao ESP32
- Deixe o grupo de pinos de saída desconectado

This image is created using Fritzing. Click to enlarge image
Se você mesmo montar a matriz de LED com vários blocos:
- Conecte o grupo de pinos de entrada do primeiro bloco ao ESP32
- Conecte o grupo de pinos de saída de cada bloco ao grupo de pinos de entrada do próximo bloco
- Deixe o grupo de pinos de saída do último bloco desconectado

This image is created using Fritzing. Click to enlarge image

This image is created using Fritzing. Click to enlarge image
Como o display consome muita corrente (até 1A no brilho máximo):
- Não use a alimentação do pino 5V do ESP32.
- Use uma fonte de alimentação externa de 5V. O ESP32 e a matriz de LED podem compartilhar a alimentação de uma fonte de alimentação de 5V
Como o ESP32 se conecta à matriz de LED pelos pinos SPI:
- Pinos GPIO18 (SCK) e GPIO23 (MOSI) no ESP32
- O pino GPIO21 (CS) pode ser trocado por qualquer pino
Como Programar a Matriz de LED
Não é fácil controlar a matriz de LED. Felizmente, existem bibliotecas disponíveis para facilitar. Abaixo está um passo a passo de como escrever o código do ESP32 para controlar a matriz de LED
- Inclua as bibliotecas:
- Especifique qual hardware está sendo usado: GENERIC_HW ou FC16_HW.
- Defina quantos blocos de LED são usados. Por exemplo, uma matriz de LED 4 em 1 tem 4 blocos.
- Defina o pino que conecta ao pino CS da matriz de LED. Por exemplo, o pino GPIO21
- Crie uma nova instância da classe MD_Parola para o display de matriz de LED.
- Código na função setup():
- Exibir texto, números e mostrar efeitos animados: veja a próxima parte
ESP32 - Código da Matriz de LED
O código abaixo é para o display de matriz de LED 32x8 FC-16 (4 blocos). Mas você pode adaptá-lo facilmente para 8x8, 16x8, 64x8...
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 na Arduino IDE.
- Faça a ligação conforme a imagem acima.
- Conecte a placa ESP32 ao seu PC por meio de um cabo USB Type-C
- Abra a Arduino IDE no seu PC.
- Selecione a placa ESP32 correta (por exemplo, ESP32 Dev Module) e a porta COM.
- Clique no ícone Libraries na barra esquerda da Arduino IDE.
- Pesquise “MD_Parola” e encontre a biblioteca MD_Parola
- Clique no botão Install.

- Será solicitado que você instale a biblioteca “MD_MAX72XX”
- Clique no botão Install All para instalar a dependência.

- Copie o código acima e abra-o na Arduino IDE
- Clique no botão Upload na Arduino IDE para carregar o código no ESP32
- Veja o display de matriz de LED
Código ESP32 para Matriz de LED – Texto Rolante
Quando você quiser exibir uma mensagem longa demais para caber no display de matriz de LED, pode usar a técnica do efeito de texto rolante.
O código ESP32 abaixo mostra como rolar uma mensagem no display de matriz de LED.
Para mais efeitos de texto, visite a Referência da Biblioteca MD_Parola.