Como Usar Uma Placa LED Matrix 8x8- Arduino
by Miguel2330 in Circuits > Arduino
770 Views, 2 Favorites, 0 Comments
Como Usar Uma Placa LED Matrix 8x8- Arduino
Neste tutorial vamos abordar como conectar e usar uma placa LED Matrix 8x8, usando uma placa Arduino. A LED Matrix é um componente bastante interessante que permite que o utilizador utilize filas e colunas de leds programáveis para representar qualquer tipo de formato, desde texto animado, até a uma simples figura estática.
Supplies
1x Placa Arduino UNO (R3)
2x Breadboard (devido ao tamanho da placa LED)~
1x Placa LED Matrix 8x8
16x Cabos de ligação
Step 1: Entender a Placa
Geralmente, existem dois tipos de placas - negativo comum e positivo comum.
Os pinos são distribuídos nas duas extremidades da placa. Os pinos numa extremidade (geralmente o lado da etiqueta) vão do 1 ao 8 da esquerda para a direita, enquanto no oposto vai do 9 ao 16 da direita para a esquerda.
Para ambos os tipos de placa, as colunas de Leds são controladas pelos pinos 13, 3, 4, 10, 6, 11, 15 e 16 e as linhas pelos pinos 9, 14, 8, 12, 1, 7, 2 e 5.
Então se por exemplo quisermos ligar o Led superior esquerdo, temos de definir o pino 9 como HIGH e o pino 13 como LOW placa;
Step 2: Ligar a Placa LED Ao Arduino
Seguindo o esquema apresentado e compreendendo a tabela, ligue a a Matrix à placa Arduino usando os cabos.
Cuidados: a orientação da placa Matrix é muito importante coloque a parte com a inscrição do modelo para baixo e siga a imagem. Um concelho é associar que os pinos analógicos estão ligados à parte com a inscrição.
Step 3: Código
No código vamos programar a placa para acender em especifico os leds que queremos para formar uma figura. Usamos uma expressão para definir a figura.
Neste link podes construir a tua própria figura e é só colar a expressão gerada no código: https://rodrigosc.github.io/ArduinoLedMatrix/char_...
Código:
byte character[8]={0x0, 0x24, 0x24, 0x24, 0x0, 0x42, 0x3c, 0x0};
uint8_t rowPins[8]={2,7,A5,5,13,A4,12,A2}; //array para os pinos que definem as colunas
uint8_t colPins[8]={ 6,11,10,3,A3,4,8,9}; //array para os pinos que definem as colunas
int pinoSensor = A0;
int valorSensor;
void setup() {
// Mudar tudo para LOW
for(int i=0; i<8; i++) {
pinMode(colPins[i],OUTPUT);
pinMode(rowPins[i],OUTPUT);
}
pinMode(pinoSensor, INPUT);
Serial.begin(9600);
}
void loop() {
for(int row=0; row<8; row++) { // iterar cada linha
for(int k=0; k<8; k++) digitalWrite(colPins[k],HIGH); // Limpar as colunas
digitalWrite(rowPins[row], HIGH); // preparar para escrever as linhas
for(int col=0; col<8; col++) {
digitalWrite(colPins[7-col], character[row] & 1 << col ? LOW : HIGH); //escrever as colunas
}
delay(1); //delay é muito importante para que os leds sejam apresentados num espaço de tempo mínimo caso contrario seria possível ver cada linha a formar-se individualmente
digitalWrite(rowPins[row],LOW);
}
}