En está ocasión os dejo el programa del contador del display de 0 a 9, pero utilizando bloques de control de flujo para simplificar el programa y escribir menos codigo . Os dejo también la configuración del display utilizado:
// Declaramos un array con el ciclo a realizar en el display
// En este caso 0=LOW y 1=HIGH
// En nuestro caso al ser el display de anodo comun los 0
// funcionan como nivel alto y los 1 como nivel bajo
const int sevenSegDigits[10][7]=
{
{0,0,0,0,0,0,1},
{1,0,0,1,1,1,1},
{0,0,1,0,0,1,0},
{0,0,0,0,1,1,0},
{1,0,0,1,1,0,0},
{0,1,0,0,1,0,0},
{0,1,0,0,0,0,0},
{0,0,0,1,1,1,1},
{0,0,0,0,0,0,0},
{0,0,0,1,1,0,0},
};
void setup()
{
//Bucle sencillo para declarar los pines desde el 2 al 8
//como salidas digitales
for (int i=2;i<9;i++)
{
pinMode(i,OUTPUT);
}
}
void loop()
{
//primero recorremos cada una de las filas
for (int number = 0;number<10; number++)
{
//segundo recorremos de cada fila su columna
//escribiendo en el display el número
for (int segCount = 0, pin=2; segCount<7; segCount++,pin++)
{
digitalWrite(pin,sevenSegDigits[number][segCount]);
}
delay(1000);//Intervalo de 1 segundo para la transicción
}
delay(2000);//Intervalo de 2 segundos para empezar de nuevo
}