Matrizes
A generalização de vetores para duas ou mais dimensões é chamada de matriz. Ao invés de um único índice, matrizes utilizam vários, mas é mais comum a utilização de dois para duas dimensões.
Exemplo: Declaração de uma matriz chamada "mat" de 2 dimensões, de tamanho 5 x 6, com variáveis do tipo int:
int mat[5][6];
A forma como manipulamos as matrizes é semelhante à maneira como lidamos com vetores.
imagem de uma matriz:
Exemplo que cria a matriz identidade.
int ident[10][10];
int k, p;
void setup() {
Serial.begin(9600);
//Cria a matriz identidade
for (k = 0; k <= 9; k++)
for (p = 0; p <= 9; p++) {
if (k == p) ident[k][p] = 1;
if (k != p) ident[k][p] = 0;
}
//Escreve no monitor serial a matriz identidade
for (k = 0; k <= 9; k++) {
Serial.println();
for (p = 0; p <= 9; p++) {
Serial.print(ident[k][p]);
Serial.print(" ");
}
}
}
void loop() {
}
Projeto
projeto de uma matriz feita com leds
Componentes
1 x Placa UNO R3;
1 x Cabo USB;
1 x Protoboard;
1 x Push-button
6 x Resistores;
6 x Leds
10 x Jumpers MxM
Projeto Simulador ThinkerCad
Código Arduíno
// Aula 11 - Matrizes
const int numRows = 3; // número de linhas no display de LED
const int numCols = 2; // número de colunas no display de LED
// Mapeamento dos pinos do Arduino para os LEDs
int pinos[numRows][numCols] = {
{2, 5},
{3, 6},
{4, 7}
};
void setup() {
// Inicializa os pinos como saídas
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numCols; j++) {
pinMode(pinos[i][j], OUTPUT);
}
}
}
void loop() {
// Exemplo de padrão de acendimento
int padrao1[numRows][numCols] = {
{1, 0},
{0, 1},
{1, 0}
};
int padrao2[numRows][numCols] = {
{0, 1},
{1, 0},
{0, 1}
};
// Exibe o padrão na matriz de LEDs
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numCols; j++) {
digitalWrite(pinos[i][j], padrao1[i][j]);
}
}
// Aguarda um momento antes de mudar o padrão
delay(1000);
// Exibe o padrão na matriz de LEDs
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numCols; j++) {
digitalWrite(pinos[i][j], padrao2[i][j]);
}
}
delay(1000); // Aguarda um momento antes de mudar o padrão
}