Menu

Matriz LED

Matriz LED

Vamos utilizar um módulo que oferece uma matriz de LEDs. Matriz é um arranjo composto de linhas e colunas. Em nosso caso, cada cruzamento de uma linha com uma coluna corresponde a um LED, o qual poderemos acender ou apagar, conforme o que quisermos exibir.

As bibliotecas (que devem ser instaladas) fazem o trabalho pesado.

Há possibilidade de interligação de uma matriz com outra, com isso permitindo-nos formar um painel – mas atenção, muitos LEDs exigem muita energia, e o Arduino é limitado.

Vamos começar verificando os alinhamento possíveis para a exibição de um caractere, usando este código:

/*
Cores válidas no meu módulo:
VCC -> Arduino 5V Vermelho
GND -> Arduino GND Verde
DIN -> Arduino Pino 11 (MOSI Marrom
CS -> Arduino Pino 10 or 3 Verde
CLK -> Arduino Pino 13 (SCK) Roxo
*/

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define TipoMatriz MD_MAX72XX::FC16_HW
#define Qtdade 1 //Quantos displays você está utilizando
#define Pino_CS 10 //Pino de controle 
#define intensidade 3

MD_Parola MatrizLED = MD_Parola(TipoMatriz, Pino_CS, Qtdade);

void setup() {
  MatrizLED.begin();
  MatrizLED.setIntensity(intensidade);
  MatrizLED.displayClear();
  MatrizLED.setInvert(false);
}

void loop() {
  MatrizLED.setTextAlignment(PA_LEFT);
  MatrizLED.print("A");
  delay(2000);

  MatrizLED.setTextAlignment(PA_CENTER);
  MatrizLED.print("A");
  delay(2000);

  MatrizLED.setTextAlignment(PA_RIGHT);
  MatrizLED.print("A");
  delay(2000);
}

 

Podemos escrever um texto maior do que a área de exibição, e a biblioteca irá controlar o display para exibir as letras em sequência:

/*
VCC -> Arduino 5V Vermelho
GND -> Arduino GND Verde
DIN -> Arduino Pino 11 (MOSI Marrom
CS -> Arduino Pino 10 or 3 Verde
CLK -> Arduino Pino 13 (SCK) Roxo
*/

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

#define TipoMatriz MD_MAX72XX::FC16_HW
#define Qtdade 1 //Quantos displays você está utilizando
#define Pino_CS 10 //Pino de controle 
#define intensidade 3

MD_Parola MatrizLED = MD_Parola(TipoMatriz, Pino_CS, Qtdade);

void setup() {
  MatrizLED.begin();
  MatrizLED.setIntensity(intensidade); //Intensidade vai de 0 a 15, quanto maior mais energia
  MatrizLED.displayClear();
  MatrizLED.displayText("CCM Senhorinha", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}

void loop() {
  if (MatrizLED.displayAnimate()) {
    MatrizLED.displayReset();
  }
}

 

Você pode procurar mais exemplos nas bibliotecas e na internet.

Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420

UFPR nas Redes Sociais


UFPR nas Redes Sociais