int linhas[8] = {13, 8, 17, 10, 5, 16, 4, 14}; // Pinos que controlam as linhas
int colunas[8] = {9, 3, 2, 12, 15, 11, 7, 6}; // Pinos que controlam as colunas
// CATODO- COMUM - LINHA | ANODO+ COMUM - COLUNA
byte ON = 1, OFF = 0;
// ON NA COLUNA ACENDE
// ON NA LINHA APAGA O LED
// ANODO COMUM - LINHA | CATODO COMUM - COLUNA
//byte ON = 0, OFF = 1;
void setup() {
for (int i = 2; i < 18; i++) { // Vai de 2 até 17 definindo os pinos como saida
pinMode(i, OUTPUT);
}
}
void loop() {
for (byte j=0;j<8;j++) {
digitalWrite(colunas[j], ON); // ACENDE AS COLUNAS 1 POR VEZ
delay(500);
}
for (byte j=0;j<8;j++) {
digitalWrite(linhas[j], ON); // APAGA AS LINHAS 1 POR VEZ (LINHA LIGADA NÃO ACENDE LED)
delay(500);
}
desligar(); // (C-) --> (L-)
digitalWrite(colunas[0], LOW);
byte i, j;
for (i = 0; i < 8; i++) { // COLUNA
for (j = 0; j < 8; j++) { // LINHA
digitalWrite(colunas[i], ON); // LIGA COLUNA
digitalWrite(linhas[j], ON); // APAGA LINHA POR LINHA DESSA COLUNA
if (j > 0) { // Se não for a primeira linha, apaga a linha anterior
digitalWrite(linhas[j - 1], OFF); // Acende a linha anterior para apagar a próxima
}
delay(200); // Delay entre os LEDs
}
digitalWrite(colunas[i], OFF); // Depois de sair do for (linha), apaga a coluna
digitalWrite(linhas[j - 1], OFF); // para acender a última linha que foi apagada no for
// VAI PARA A PRÓXIMA COLUNA
}
desligar(); // (C-) --> (L-)
}
void desligar() { // (C-) --> (L-)
for (int i=0;i<8;i++) {
digitalWrite(linhas[i],OFF); // LINHAS NEGATIVA(0) SEM COLUNA(1) NÃO ACENDE O LED
}
for (int i=0;i<8;i++) {
digitalWrite(colunas[i],OFF); // APAGA AS COLUNAS
}
}
int linhas[8] = {13, 8, 17, 10, 5, 16, 4, 14}; // Pinos que controlam as linhas
int colunas[8] = {9, 3, 2, 12, 15, 11, 7, 6}; // Pinos que controlam as colunas
// CATODO COMUM - LINHA | ANODO COMUM - COLUNA
byte ON = 1, OFF = 0;
// ANODO COMUM - LINHA | CATODO COMUM - COLUNA
//byte ON = 0, OFF = 1;
void setup() {
for (int i = 2; i < 18; i++) { // Vai de 2 até 17 definindo os pinos como saida
pinMode(i, OUTPUT);
}
}
void loop() {
int i, j;
// CORAÇÃO
digitalWrite(colunas[0], ON); // SELECIONA A COLUNA 1
for(i=2;i<4;i++) {
digitalWrite(linhas[i], OFF); // ACENDE AS LINHAS 2 E 4 DESSA COLUNA
}
delayMicroseconds(20);
apagar();
digitalWrite(colunas[1], ON); // SELECIONA A COLUNA 2
digitalWrite(linhas[1], OFF); // LINHA 2 (ACENDE)
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[2], ON); // COLUNA 3
digitalWrite(linhas[1], OFF); // LINHA 2 (ACENDE)
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
digitalWrite(linhas[5], OFF); // LINHA 6 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[3], ON); // COLUNA 4
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
digitalWrite(linhas[5], OFF); // LINHA 6 (ACENDE)
digitalWrite(linhas[6], OFF); // LINHA 7 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[4], ON); // COLUNA 5
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
digitalWrite(linhas[5], OFF); // LINHA 6 (ACENDE)
digitalWrite(linhas[6], OFF); // LINHA 7 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[5], ON); // COLUNA 6
digitalWrite(linhas[1], OFF); // LINHA 2 (ACENDE)
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
digitalWrite(linhas[5], OFF); // LINHA 6 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[6], ON); // COLUNA 7
digitalWrite(linhas[1], OFF); // LINHA 2 (ACENDE)
digitalWrite(linhas[2], OFF); // LINHA 3 (ACENDE)
digitalWrite(linhas[3], OFF); // LINHA 4 (ACENDE)
digitalWrite(linhas[4], OFF); // LINHA 5 (ACENDE)
delayMicroseconds(20);
apagar();
digitalWrite(colunas[7], ON); // COLUNA 8
for(i=2;i<4;i++) {
digitalWrite(linhas[i], OFF); // ACENDE TODAS LINHAS
}
delayMicroseconds(20);
apagar();
}
void apagar() {
for (int i=0;i<8;i++) { //
digitalWrite(linhas[i],ON); // apaga todas linhas
}
for (int i=0;i<8;i++) { //
digitalWrite(colunas[i],OFF); // apaga todas colunas
}
}
Nenhum comentário:
Postar um comentário