top of page

[PT-BR] Controlando uma matrix de led 8x8 com Arduino/Funduino Pro Mini

O principal objetivo deste post é ensinar os entusiastas em eletrônica embarcada a construir um circuito utilizando um Arduino/Funduino Pro Mini para controlar uma matriz de LED 8x8 interfaceando com o chip MAX7219. Toda a solução irá custar menos que 25 reais (R$ 24,69).

Para isso utilizei a versão de baixo custo do Arduino Pro Mini (Funduino Pro Mini feito na China) comprado no site do Deal Extreme por R$ 13,26 que entrega no Brasil. Com o que será ensinado neste post você conseguirá desenhar qualquer padrão de imagem que couber em uma matriz 8x8.

Abaixo segue uma foto da parte de cima e parte de baixo do Funduino Pro Mini.

[AVISO] Na época que fiz isso (2014), o Funduino era uma boa aquisição, porém hoje em dia é melhor adquirir a versão melhorada do Arduino nano version (R$ 14,04) que já integra o transceptor FTDI (USB para serial), evitando o uso de um transceptor FTDI externo para gravar o Funduino Pro Mini.

A matriz de LED 8x8 LED usada foi o MAX7219 Red Dot Matrix Module w/ 5-Dupont Lines que custa R$ 11,43 no site da Deal extreme. Para gravar o Funduino Pro Mini você precisará ao menos de um transceptor FTDI (USB-serial) com pelo menos os pinos TX, RX, GND e DTR. disponíveis. Neste caso eu usei o FTDI da OSEPP que eu tinha disponível aqui em casa. Segue abaixo o circuito da matriz 8x8 e o FTDI da OSEPP ilustrados respectivamente.

Antes de construir o circuito final você precisará realizar 3 passos:

1º) Instale o driver do FTDI assim que plugar o mesmo no seu computador (se você estiver usando um linux ubuntu ou windows 10 não será necessário realizar tal instalação de driver, basta plugar e aguardar um pouco para visualizar o dispositivo instalado no diretório /dev/ttyUSBx no ubuntu, ou aguardar que o gerenciador de dispositivos mostre dentro das portas COM and LPT no windows 10).

[AVISO] Se você precisar instalar os drivers FTDI busque o mesmo no link da página da FTDI: Windows 32bit (2.12.26), Windows 64bit (2.12.26), Linux 32-bit (1.5.0) and Linux 64-bit (1.5.0).

2º) Instale o ambiente de desenvolvimento integrado da Arduino (IDE), eu estou usando a versão 1.8.3.

3º) Realize as ligações de hardware customizadas para tornar a placa FTDI em um gravador de firmware para Arduino/Funduino Pro Mini. Isso é realizado apenas soldando um resistor de 2,2k ohm de VCC para o terminal positivo de um capacitor (caso eletrolítico de 100n a 1 micro Faraday com voltagem maior que 5V), soldando o terminal negativo do capacitor no pino DTR da FTDI, e soldando o terminal em comum positivo do capacitor com o terminal que sobrou do resistor no pino de reset do Arduino/Funduino Pro Mini. Veja o diagrama elétrico na figura abaixo (feito com o aplicativo Fritzing).

FTDI changes to write arduino mini pro board

Após realizados os 3 passos anteriores, estamos prontos para conectar o Arduino/Funduino a matriz de LEDs 8x8. Interligue os pinos 2,3 e 4 do Arduino/Funduino respectivamente com os pinos DIN, CS e CLK da matriz de LEDs (não esqueça de ligar o VCC e GND da matriz de LEDs com o VCC e GND do Arduino/Funduino). Segue abaixo o diagrama esquemático do hardware descrito no texto anterior.

FTDI Arduino pro mini 8x8 led

Para prover um melhor entendimento da pinagem do Arduino/Funduino com a IDE do Arduino, a figura abaixo reproduzida do site PighiXXX ilustra tal pinagem.

Arduino pro mini pinout

Agora com tudo conectado e o FDTI ligado no computado, Abra a IDE do Arduino, baixe e abra o código disponibilizado por mim no Git-Hub, configure a porta serial (no meu caso a COM3), configure o processador Arduino pro mini, a frequência e voltagem do chip utilizado ATmega328 16MHz/5V, e agora basta clicar na seta (segundo botão abaixo do menu arquivo da esquerda para direita) e o código será gravado no Arduino/Funduino para que inicie-se a ação.

com port selection arduino ide

arduino board selection IDE
Arduino Atmega 328 voltage and frequency selection

Abaixo segue o video que fiz upload no youtube mostrando a execução do código carregado que mostra naves aliens do joguinho de Atari Space Invaders animandos e o meu nome passado na matriz de LEDS após as animações.

Para customizar o código que disponibilizei com suas próprias animações, você pode usar os sites abaixo para puxar ou criar os padrões que você deseja:

Animações Space Invaders: Gemma Space Invaders

Dentro do código, caso você queira mudar o mesmo para mostrar sua própria imagem desejada, você precisa modificar o vetor 'valueMask' (sempre se lembre que após mudar o vetor você precisa atualizar corretamente os defines 'rowMax' e 'colMax' para não gerar inconsistência entre o conteúdo do vetor e o tamanho alocado).

Para customizar a imagem mostrada, você precisa apenas prover o padrão de zero e um que irá ligar e desligar os LEDs de toda a matriz. Por exemplo, se quisermos mostrar a letra 'O' na matriz de LEDs, esta letra terá o seguinte padrão de 1's/0's gerados a partir do site Animation Tool for 8x8 LED Matrix (veja a figura abaixo):

O padrão de 1's/0's que corresponde a letra 'O' deve ser adicionado em uma linha do vetor 'valueMask' da seguinte forma:

{B00111100,B01100110,B10000001,B10000001,B10000001,B10000001,B01100110,B00111100},

1 column | 2 column | 3 column | 4 column | 5 column | 6 column | 7 column | 8 column

Após adicionado, o define rowMax tem que ser ajustado (caso necessário), e o código recompilado e recarregado clicando no ícone seta da IDE do Arduino. Agora é só se divertir.

Featured Posts
Recent Posts
Search By Tags
Nenhum tag.
Follow Us
  • LinkedIn Social Icon
  • Facebook Social Icon
  • Twitter Social Icon
  • Instagram Social Icon
  • YouTube Social  Icon
bottom of page