Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
O uso de painéis de matriz de LEDs em projetos com Arduino é uma excelente maneira de criar displays visuais dinâmicos e informativos. Esses painéis são compostos por uma série de LEDs dispostos em uma grade, permitindo a exibição de textos, gráficos e animações. A importância desse tema reside na sua ampla aplicação em projetos de sinalização, decoração, comunicação visual e até mesmo em interfaces de usuário. Ajustar esses painéis para trabalhar com o Arduino envolve a utilização de bibliotecas específicas que facilitam a comunicação e o controle dos LEDs.
Projeto: Neste projeto, vamos criar um display de texto rolante utilizando um painel de matriz de LEDs de 8x8 controlado por um Arduino. O objetivo é demonstrar como controlar o painel para exibir mensagens de texto que se movem da direita para a esquerda. As funcionalidades incluem a capacidade de alterar a mensagem exibida e ajustar a velocidade de rolagem.
Lista de componentes:
Exemplos:
// Inclui a biblioteca LedControl para controlar o painel de matriz de LEDs
#include <LedControl.h>
// Pinos de conexão do MAX7219 ao Arduino
const int DIN_PIN = 12;
const int CS_PIN = 11;
const int CLK_PIN = 10;
// Inicializa o objeto LedControl
LedControl lc = LedControl(DIN_PIN, CLK_PIN, CS_PIN, 1);
// Mensagem a ser exibida
String message = "Hello, Arduino!";
// Configuração inicial
void setup() {
// Inicializa o painel de matriz de LEDs
lc.shutdown(0, false); // Liga o display
lc.setIntensity(0, 8); // Define o brilho (0 a 15)
lc.clearDisplay(0); // Limpa o display
}
// Função principal de loop
void loop() {
// Exibe a mensagem rolando da direita para a esquerda
scrollMessage(message);
}
// Função para rolar a mensagem no painel de matriz de LEDs
void scrollMessage(String msg) {
int len = msg.length();
for (int i = 0; i < len * 8; i++) {
lc.clearDisplay(0);
for (int j = 0; j < len; j++) {
drawChar(msg[j], 8 * j - i);
}
delay(100); // Ajuste a velocidade de rolagem aqui
}
}
// Função para desenhar um caractere no painel de matriz de LEDs
void drawChar(char c, int offset) {
byte font[96][8] = {
// Definição da fonte 8x8 para caracteres ASCII
// (Apenas alguns caracteres de exemplo)
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, // ' '
{0x00,0x00,0x5F,0x00,0x00,0x00,0x00,0x00}, // '!'
{0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00}, // '"'
// ...
};
if (c < 32 || c > 127) return; // Verifica se o caractere está na faixa válida
for (int i = 0; i < 8; i++) {
if (offset + i >= 0 && offset + i < 8) {
lc.setColumn(0, offset + i, font[c - 32][i]);
}
}
}
Comentários sobre o código:
LedControl
é usada para simplificar o controle do painel de matriz de LEDs.DIN_PIN
, CS_PIN
e CLK_PIN
são definidos para a comunicação SPI com o controlador MAX7219.setup()
inicializa o painel de matriz de LEDs.loop()
chama scrollMessage()
para exibir a mensagem rolando continuamente.scrollMessage()
desloca a mensagem ao longo do painel.drawChar()
desenha caracteres individuais no painel com base em uma fonte 8x8.