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.
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.
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.
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.
Porém, note que em ambos os casos é necessário a limitação de corrente para evitar a queima do 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.
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.
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
Agora faremos as conexões do módulo matriz de LED na placa Arduino e a sua programação.
Conecte o módulo matriz de LED como mostrado a seguir.
Para instalarmos a biblioteca MD_MAX72XX, devemos seguir os seguintes passos:
No IDE do Arduino, Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Como visto a seguir:
Em seguida, digite MD_MAX72XX na busca e instale a biblioteca mostrado a seguir.
/*********************************** * 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); } } }
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!
|
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.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!