Matriz de LED 8x8 (MAX7219): O Guia Completo — Multiplexação, SPI, Encadeamento e Rset
Guia completo da matriz de LED com MAX7219: como funciona a multiplexação, ligação SPI de 3 fios, encadeamento de módulos, ajuste de brilho pelo Rset, alimentação e bibliotecas.
Sabe aqueles painéis vermelhos com texto rolando em lojas, ônibus e placares? Eles nascem de um componente simples: a matriz de LED 8x8 — 64 LEDs organizados em linhas e colunas.
O impressionante é que dá para controlar tudo isso com apenas 3 fios do Arduino, graças ao chip MAX7219. E ainda dá para encadear vários módulos e formar letreiros compridos.
🔴 O desafio dos 64 LEDs
Uma matriz 8x8 tem 64 LEDs. Se cada um tivesse seu próprio fio, seriam 64 pinos + terra — impossível. A solução é o arranjo em matriz: os LEDs compartilham conexões em 8 linhas e 8 colunas, totalizando apenas 16 pinos.
Cada LED fica no cruzamento de uma linha com uma coluna. Para acender um LED específico, você energiza a linha e a coluna correspondentes. Mas isso cria um novo problema: como acender vários LEDs em posições diferentes ao mesmo tempo sem acender os cruzamentos indesejados?
✨ Multiplexação — enganando o olho humano
A resposta é não acender tudo ao mesmo tempo. Em vez disso:
- Acende-se apenas uma linha, com o padrão correto de colunas.
- Apaga-se e passa-se para a próxima linha, com o padrão dela.
- Repete-se para as 8 linhas, centenas de vezes por segundo.
- Por causa da persistência da visão, o olho funde tudo e enxerga a imagem completa e estável.
🔌 O MAX7219 faz o trabalho pesado
Fazer multiplexação 'na mão' consumiria o processamento do Arduino o tempo todo. O MAX7219 resolve isso: ele mantém a imagem sozinho, deixando o microcontrolador livre.
- Comunicação por SPI: apenas 3 fios — DIN (dados), CLK (clock) e CS/LOAD (seleção).
- Controla 64 LEDs (uma matriz 8x8) ou 8 dígitos de 7 segmentos.
- Memória interna: você envia a imagem uma vez e ele mantém.
- Brilho ajustável por software em 16 níveis.
- Permite encadeamento de vários chips.
🔗 Encadeando módulos (letreiros)
Para fazer um letreiro, basta ligar módulos em série: a saída DOUT de um vai na entrada DIN do próximo. CLK e CS são compartilhados. Você continua usando os mesmos 3 pinos do Arduino, independentemente de ter 1 ou 8 módulos.
🎚️ O resistor Rset — o detalhe técnico
A corrente máxima de todos os segmentos é definida por um único resistor externo ligado ao pino ISET, chamado Rset. Nos módulos prontos, ele já vem soldado (normalmente entre 10 kΩ e 100 kΩ).
Quanto menor o Rset, maior a corrente e o brilho — e maior o aquecimento. O valor de fábrica costuma ser adequado; alterá-lo sem consultar o datasheet pode reduzir a vida dos LEDs.
💻 Bibliotecas e efeitos
| Biblioteca | Melhor para | Observação |
|---|---|---|
| LedControl | Controle direto, LED a LED | Simples e leve, boa para aprender |
| MD_MAX72XX | Base para painéis | Gerencia o hardware e o encadeamento |
| MD_Parola | Texto rolando e efeitos | Dezenas de animações prontas |
| LedMatrix / Max72xxPanel | Gráficos e desenhos | Integra com a Adafruit GFX |
🧮 Exemplo prático: letreiro de 4 módulos
📖 Texto rolando com 32×8 pixels
1) Hardware: uma barra com 4 matrizes (32 colunas × 8 linhas) e um MAX7219 por matriz.
2) Ligação: DIN, CLK e CS no Arduino; VCC e GND numa fonte externa de 5 V (com GND comum).
3) Consumo: estime até ~1,2 A no pior caso (tudo aceso, brilho máximo). Uma fonte de 2 A dá folga.
4) Software: use a MD_Parola, informe 4 dispositivos e escolha o efeito de rolagem.
5) Brilho: reduza para um nível médio — melhora a leitura, esquenta menos e economiza energia.
🎯 Onde usar
- Letreiros com texto rolando (avisos, promoções, nomes).
- Relógios de parede, placares e contadores.
- 'Olhos' expressivos e animações em robôs.
- Painéis de status, ícones e jogos simples (Snake, Tetris).
🛠️ Problemas comuns
| Sintoma | Causa provável | Solução |
|---|---|---|
| Nada acende | CS/DIN/CLK trocados | Confira a pinagem e o sentido DOUT → DIN |
| Texto espelhado/rodado | Tipo de hardware errado na biblioteca | Ajuste para FC16 ou o tipo do seu módulo |
| Só o 1º módulo funciona | Número de dispositivos errado no código | Informe a quantidade correta |
| Piscando / reiniciando | Alimentação insuficiente | Fonte externa de 5 V com corrente suficiente |
| Brilho irregular | Alimentação fraca no fim da fila | Alimente também pela outra ponta da barra |
| Esquentando | Brilho no máximo | Reduza a intensidade por software |
🚀 Conclusão
64 LEDs, 3 fios (SPI), multiplexação feita pelo chip e a possibilidade de encadear: é o combo que transforma pontos de luz em letreiros e animações.
Lembre dos dois pontos que mais causam dor de cabeça: alimentação externa (não puxe do Arduino) e o tipo de hardware na biblioteca. Resolvidos esses, é só criatividade.
Dúvidas? Comenta aí! 🦣⚡
Mamute Eletrônica · Componentes, Módulos e Robótica · Rua Vitória, 125 — Santa Efigênia/SP · mamuteeletronica.com.br
Para montar o que você acabou de ler
O módulo de 8 dígitos usa o mesmo CI e os jumpers fecham a ligação SPI.