Ya hace el programa lo que quiero, el problema es que parpadea mucho, en la parte final tengo un delay donde hace que vaya mas lento o mas rapido, si se lo quito parpadea como loco, alguien sabe como lo puedo solucionar? Este es mi codigo
escribe o pega el códiint displayD = 5;
int displayU = 4;
int botonAum = 2;
int botonDis = 3;
int EdoBotonAum;
int EdoBotonDis;
byte x ;
int Seg[] = {13, 12, 11, 10, 9, 8, 7};
int S = 0;
int contadorU = 0;
int contadorD = 0;
void setup() {
Serial.begin(9600);
for (S=0; S<7; S++)
{
pinMode (Seg [S], OUTPUT);
digitalWrite( Seg[S], LOW);
}
pinMode (botonAum, INPUT);
pinMode (botonDis, INPUT);
pinMode (displayD, OUTPUT);
pinMode (displayU, OUTPUT);
digitalWrite(displayD,HIGH);
digitalWrite(displayU,HIGH);
}
void display(int a, int b, int c, int d, int e, int f, int g)
{
digitalWrite(Seg[0], a);
digitalWrite(Seg[1], b);
digitalWrite(Seg[2], c);
digitalWrite(Seg[3], d);
digitalWrite(Seg[4], e);
digitalWrite(Seg[5], f);
digitalWrite(Seg[6], g);
}
void loop() {
Serial.print(contadorD);
Serial.println(contadorU);
EdoBotonAum = digitalRead(botonAum);
delay(20);
if (EdoBotonAum == LOW)
{
contadorU = contadorU+1;
if (contadorU > 9)
{
contadorU = 0;
contadorD = contadorD+1;
if (contadorD > 9)
{
contadorD = 0;
}
}
}
EdoBotonDis = digitalRead(botonDis);
delay(20);
if (EdoBotonDis == LOW)
{
contadorU = contadorU-1;
if (contadorU < 0)
{
contadorU = 9;
contadorD = contadorD-1;
if (contadorD < 0)
{
contadorD = 9;
}
}
}
if (x ==1)
{
digitalWrite(displayU,1);
digitalWrite(displayD,0);
switch (contadorU)
{
case 0:
display (0, 0, 0, 0, 0, 0, 1); //Muestra el numero 0
break;
case 1:
display (1, 0, 0, 1, 1, 1, 1); //Muestra el numero 1
break;
case 2:
display (0, 0, 1, 0, 0, 1, 0); //Muestra el numero 2
break;
case 3:
display(0, 0, 0, 0, 1, 1, 0); //Muestra el numero 3
break;
case 4:
display (1, 0, 0, 1, 1, 0, 0); //Muestra el numero 4
break;
case 5:
display (0, 1, 0, 0, 1, 0, 0); //Muestra el numero 5
break;
case 6:
display(0, 1, 0, 0, 0, 0, 0); //Muestra el numero 6
break;
case 7:
display (0, 0, 0, 1, 1, 1, 1); //Muestra el numero 7
break;
case 8:
display (0, 0, 0, 0, 0, 0, 0); //Muestra el numero 8
break;
case 9:
display (0, 0, 0, 1, 1, 0, 0); //Muestra el numero 9
break;
}
}
else
{
digitalWrite(displayU,0);
digitalWrite(displayD,1);
switch (contadorD)
{
case 0:
display (0, 0, 0, 0, 0, 0, 1); //Muestra el numero 0
break;
case 1:
display (1, 0, 0, 1, 1, 1, 1); //Muestra el numero 1
break;
case 2:
display (0, 0, 1, 0, 0, 1, 0); //Muestra el numero 2
break;
case 3:
display(0, 0, 0, 0, 1, 1, 0); //Muestra el numero 3
break;
case 4:
display (1, 0, 0, 1, 1, 0, 0); //Muestra el numero 4
break;
case 5:
display (0, 1, 0, 0, 1, 0, 0); //Muestra el numero 5
break;
case 6:
display(0, 1, 0, 0, 0, 0, 0); //Muestra el numero 6
break;
case 7:
display (0, 0, 0, 1, 1, 1, 1); //Muestra el numero 7
break;
case 8:
display (0, 0, 0, 0, 0, 0, 0); //Muestra el numero 8
break;
case 9:
display (0, 0, 0, 1, 1, 0, 0); //Muestra el numero 9
break;
}
}
x++;
if (x >= 2)
{
x = 0;
}
delay(100);
}
go aquí