BLOQUES DE CONTROL DE FLUJO --- CONTADOR DE UN DISPLAY DEL 0 AL 9



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

}