ile( i> 0 && i<8) { lcd.setCursor(0,0); LerTecla(); if(i==1){lcd.print(" Entre com Ano ");} if(i==2){lcd.print(" Entre com Mes ");} if(i==3){lcd.print(" Entre com Dia ");} if(i==4){lcd.print(" Entre cm Semana");} if(i==5){lcd.print(" Entre com Hora ");} if(i==6){lcd.print(" Entre com Minut");} if(i==7){lcd.print(" Entre com Segun");} if(UP){acertahora[i]++;estouro = 0;UP = 0;} //alteração custela if (DOWN && acertahora[i] >= 0){acertahora[i]--;estouro = 0; DOWN = 0;} //alteração custela
if (SELECT){i ++;estouro = 0; SELECT = 0;
delay(200);} //alteração custela
if(acertahora[1] < 1 ){acertahora[1] = 13;} if(acertahora[2] > 12){acertahora[2] = 1;}
if(acertahora[2] == 0){acertahora[2] = 12;}
if(acertahora[3] > 31){acertahora[3] = 1;}
if(acertahora[3] == 0){acertahora[3] = 31;}
if(acertahora[4] > 6){acertahora[4] = 0;}
if(acertahora[4] == -1){acertahora[4] = 6;}
if(acertahora[5] > 23){acertahora[5] = 0;}
if(acertahora[5] == -1){acertahora[5] = 23;}
if(acertahora[6] > 59){acertahora[6] = 0;}
if(acertahora[6] == -1){acertahora[6] = 59;}
if(acertahora[7] > 59){acertahora[7] = 0;}
if(acertahora[7] == -1){acertahora[7] = 59;}
lcd.setCursor(9, 1);
lcd.print(acertahora[i], DEC);lcd.print(" ");
if(estouro == 90){ i = 0 ; estouro = 0;}
}
DS1307.setDate(acertahora[1], acertahora[2], acertahora[3], acertahora[4], acertahora[5], acertahora[6], acertahora[7]); // AQUI ENVIAMOS OS DADOS DEFINIDOS PARA O REAL TIME CLOK lcd.clear();
}
Gostaria de implementar essa logica do switch(case) no if(acertahora[4] para ao invés de aparecer os números aparecer os dias da semana conforme case abaixo. Qualquer ajuda sera bem vinda.
//valores case RTC int semana ; // Valores recolhidos
String d_semana; // Para texto LCD
semana == acertahora[4]; //Traduzir valor de dia de semana para texto
switch(semana){
case 1:
d_semana = "DOMINGO";
break;
case 2:
d_semana = "SEGUNDA";
break;
case 3:
d_semana = "TERCA";
break;
case 4:
d_semana = "QUARTA";
break;
case 5:
d_semana = "QUINTA";
break;
case 6:
d_semana = "SEXTA";
break;
case 7:
d_semana = "SABADO";
break;
}…
ado
{1, 0, 0, 0, 1, 1, 1}, //Reprovado por falta
{1, 0, 0, 0, 1, 1, 0}, //Reprovado por nota
{0, 1, 1, 1, 0, 0, 0} //Laureado
};
int display[7] = {3, 4, 5, 6, 7, 8, 9}; //3=a 4=b 5=c 6=d 7=e 8=f 9=g
Depois cria uma função para escrever no display assim
void escreveDisplay(int x){
for(int i=0; i<7; i++){
digitalWrite(display[i], caracteres[x][i];
}
}
E dentro do IF você chama essa função, por exemplo, no lugar de "//codigo para mostrar aprovado" você coloca escreveDisplay(0);
Nessa função se você enviar 0 será aprovado, 1 será reprovado por falta, 2 reprovado por nota e 3 laureado.
Obs.: não testei o código, só escrevi.…
valor que fosse lançado. Se eu lançar 1, 3, 7, ela deveria ser igual a 11. Se eu lançar 4, deveria ser igual a 15. Sempre somando, "acumulando", valores, entende?…
ay), + 2 CIs CD4017 ? Com isto você vai precisar de ==2+3+2==7 portas do mini, dá sossegado.
É isto mesmo Carlos que você precisa ? Agora uma pergunta que não quer calar. 16 canais ? tem esta necessidade ? não quer ligar estes leds de outra maneira ? …