Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
A utilização de matrizes de LED (LED Matrix) em projetos de Arduino permite a criação de displays dinâmicos e interativos, que podem exibir texto, gráficos e animações. Este artigo aborda a importância de entender como controlar uma LED Matrix com um Arduino, um conhecimento essencial para projetos de sinalização, decoração e até mesmo em aplicações mais complexas como painéis de informação em tempo real. Ajustaremos a implementação para que seja compatível com o ambiente Arduino, utilizando bibliotecas específicas que facilitam a programação e o controle dos LEDs.
Projeto: O projeto consiste em criar um display de LED Matrix controlado por um Arduino, capaz de exibir mensagens de texto e padrões gráficos simples. O objetivo é demonstrar como configurar a matriz de LEDs, programar mensagens e criar animações básicas. Serão abordadas as funcionalidades de rolagem de texto, mudança de brilho e exibição de padrões gráficos.
Lista de componentes:
Exemplos:
#include <LedControl.h> // Inclui a biblioteca LedControl
// Parâmetros de inicialização do LedControl
// Pin 12 é conectado ao DataIn
// Pin 11 é conectado ao CLK
// Pin 10 é conectado ao LOAD
// Número de dispositivos é 1 (uma matriz de 8x8)
LedControl lc = LedControl(12, 11, 10, 1);
void setup() {
lc.shutdown(0, false); // Inicializa a matriz
lc.setIntensity(0, 8); // Define o brilho (0-15)
lc.clearDisplay(0); // Limpa a matriz
displayText("HELLO"); // Exibe a mensagem "HELLO"
}
void loop() {
// Loop vazio, a mensagem é exibida uma vez no setup
}
void displayText(String text) {
for (int i = 0; i < text.length(); i++) {
lc.setChar(0, i, text[i], false); // Exibe cada caractere
}
}
#include <LedControl.h>
LedControl lc = LedControl(12, 11, 10, 1);
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
void loop() {
scrollText("ARDUINO LED MATRIX");
}
void scrollText(String text) {
for (int pos = 0; pos < text.length() * 8; pos++) {
lc.clearDisplay(0);
for (int i = 0; i < 8; i++) {
lc.setColumn(0, i, getColumnData(text, pos + i));
}
delay(100); // Controla a velocidade da rolagem
}
}
byte getColumnData(String text, int col) {
if (col < 0 || col >= text.length() * 8) {
return 0;
}
int charIndex = col / 8;
int colIndex = col % 8;
return pgm_read_byte(&font[text[charIndex] - 32][colIndex]);
}
// Fonte de 5x7 pixels para caracteres ASCII
const byte font[][8] PROGMEM = {
// Definição da fonte... (A fonte completa deve ser definida aqui)
};
Nota: Os campos "TTT:", "" e "