int CHAVES[] = {34, 35, 32};
int pinos[] = {18, 5, 17, 16, 4, 0, 2, 15}; // {a, b, c, d, e, f, g, dp}
bool disp[10][8] = {{1,1,1,1,1,1,0,1}, //0
{0,1,1,0,0,0,0,1}, //1
{1,1,0,1,1,0,1,1}, //2
{1,1,1,1,0,0,1,1}, //3
{0,1,1,0,0,1,1,1}, //4
{1,0,1,1,0,1,1,1}, //5
{0,0,1,1,1,1,1,1}, //6
{1,1,1,0,0,0,0,1}, //7
{1,1,1,1,1,1,1,1}, //8
{1,1,1,0,0,1,1,1},};//9
int katodo[] = {23, 22, TX, RX, 21, 19};
const int vdin = 5;
int uni = 0;
int dec = 0;
int cen = 0;
int mil = 0;
int dezmil = 0;
int cenmil = 0;
int timeVD = 0;
void Display7print(int numero, int *p){
if (numero >= 0 && numero <= 9){
for(int i=0;i<8;i++){
digitalWrite(*p,disp[numero][i]);
p++;
}
}
}
void visDiamica(int *p, int uni, int dec, int cen, int mil, int dezmil, int cenmil){
Display7print(cenmil,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
p++;
Display7print(dezmil,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
p++;
Display7print(mil,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
p++;
Display7print(cen,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
p++;
Display7print(dec,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
p++;
Display7print(uni,pinos);
digitalWrite(*p,LOW);
delay(vdin);
digitalWrite(*p,HIGH);
}
void ContadorLivre(){
}
void Relogio24h(){
}
void Relogio12h(){
}
void setup() {
// Configurar os pinos de entrada e saida
for (int i = 0; i < 8; i++) {
pinMode(pinos[i], OUTPUT);
digitalWrite(pinos[i], LOW);
}
for (int i = 0; i < 6; i++) {
pinMode(katodo[i], OUTPUT);
digitalWrite(katodo[i], LOW);
}
for (int i = 0; i < 3; i++) {
pinMode(CHAVES[i], INPUT);
}
}
/*int S0 = digitalRead(CHAVES[0]);
int S1 = digitalRead(CHAVES[1]);
int S2 = digitalRead(CHAVES[3]);
if (S0 == HIGH ){
ContadorLivre();
}
else if (S1 == HIGH){
Relogio24h();
}
else if (S2 == HIGH) {
Relogio12h();
}*/
void loop(){
if (timeVD == 10){
uni++;
timeVD = 0;
if ( uni > 9){
uni=0;
dec++;
} else if ( dec > 9){
dec = 0;
cen++;
} else if (cen > 9){
cen = 0;
mil++;
} else if (mil > 9){
mil = 0;
} else if (dezmil > 9){
dezmil = 0;
} else if (cenmil > 9){
cenmil = 0;
}
} else{
delay(1);
timeVD++;
}
visDiamica(katodo,uni,dec,cen,mil,dezmil,cenmil);
}