// ESCREVER A LETRA P 
// DISPLAY ANODO COMUM
// USANDO VETOR


#define a 2 // conexão do pino 2 com o segmento a
#define b 3 // conexão do pino 3 com o segmento b
#define c 4 // conexão do pino 4 com o segmento c
#define d 5 // conexão do pino 5 com o segmento d
#define e 6 // conexão do pino 6 com o segmento e
#define f 7 // conexão do pino 7 com o segmento f
#define g 8 // conexão do pino 8 com o segmento g
#define dp 9 // conexão do pino 9 com o segmento dp
int tempo = 20; // variável tempo para o delay.
                // o valor 20 foi escolhido para 
                // que o display pareça aceso.

// declaração do vetor para controlar o estado dos pinos
const byte Pinos[8] = { 2, 3, 4, 5, 6, 7, 8, 9 };

void setup()
 {
    // contador crescente até 7 para configurar pinos como saida
   for(int i = 0; i < 8; i++)
     {
       pinMode(Pinos[i], OUTPUT);
     }
delay(10); //pequeno atraso

// o trecho abaixo garante que o display iniciará
// totalmente apagado
    for(int i = 0; i < 8; i++)
     {
       digitalWrite(Pinos[i], 1);
     }

 }
 
void loop()
 {
  // sa é uma variável local do tipo int
  // que será relacionada ao segemento a do display
  // nela será guardado o valor do do vetor Pinos
  // na posição indicada dentro dos colchetes
  int sa = Pinos[0]; 
  digitalWrite(sa,0); // escreve 0 no pino indicado em sa
  delay(tempo);       // pequeno atraso
  digitalWrite(sa,1); // escreve 1 no pino indicado em sa

  // sb é uma variável local do tipo int
  // que será relacionada ao segemento b do display
  // nela será guardado o valor do do vetor Pinos
  // na posição indicada dentro dos colchetes  
  int sb = Pinos[1];  
  digitalWrite(sb,0); // escreve 0 no pino indicado em sb
  delay(tempo);       // pequeno atraso
  digitalWrite(sb,1); // escreve 1 no pino indicado em sb

  // se é uma variável local do tipo int
  // que será relacionada ao segemento e do display
  // nela será guardado o valor do do vetor Pinos
  // na posição indicada dentro dos colchetes
  int sc = Pinos[2];
  digitalWrite(sc,0); // escreve 0 no pino indicado em se
  delay(tempo);       // pequeno atraso
  digitalWrite(sc,1); // escreve 1 no pino indicado em se

  // sf é uma variável local do tipo int
  // que será relacionada ao segemento f do display
  // nela será guardado o valor do do vetor Pinos
  // na posição indicada dentro dos colchetes
  int sf = Pinos[5];
  digitalWrite(sf,0); // escreve 0 no pino indicado em sf
  delay(tempo);       // pequeno atraso
  digitalWrite(sf,1); // escreve 1 no pino indicado em sf

  // sg é uma variável local do tipo int
  // que será relacionada ao segemento g do display
  // nela será guardado o valor do do vetor Pinos
  // na posição indicada dentro dos colchetes
   int sg = Pinos[6];
  digitalWrite(sg,0); // escreve 0 no pino indicado em sg
  delay(tempo);       // pequeno atraso
  digitalWrite(sg,1); // escreve 1 no pino indicado em sg

 }