c – Como posso fazer um push botton para acender o display


Estou tentando fazer um display ligar mas preciso fazer primeiro um push botton para iniciar a contagem no display.Alguem pode dar uma dica de como devo fazer?

// configuração da pinos
const int A = 2; 
const int B = 3;
const int C = 4;
const int D = 5;
const int E = 6;
const int F = 7;
const int G = 8;

const int PT = 5; // setemaos o ponto do display

boolean ligaPonto = false;

// Variaveis liga e desliga p/ display 7 segmentos
const int l = 1, d = 0; // Display 7 segmentos (catodo comum)
//const int l = 0, d = 1; // Display 7 segmentos (anodo comum)

void setup(){
      pinMode(A, OUTPUT); // seta todos as portas que estão os leds do display como saída
      pinMode(B, OUTPUT);
      pinMode(C, OUTPUT);
      pinMode(D, OUTPUT);
      pinMode(E, OUTPUT);
      pinMode(F, OUTPUT);
      pinMode(G, OUTPUT);
      pinMode(PT, OUTPUT);
}

void loop(){
      digitalWrite(A, l); //acende os leds que representam o número 0
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, l);
      digitalWrite(E, l);
      digitalWrite(F, l);
      digitalWrite(G, d);
blinkDP(); // Função para piscar o ponto 2 vezes

      digitalWrite(A, d); //acende os leds que representam o número 1
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, d);
      digitalWrite(E, d);
      digitalWrite(F, d);
      digitalWrite(G, d);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 2
      digitalWrite(B, l);
      digitalWrite(C, d);
      digitalWrite(D, l);
      digitalWrite(E, l);
      digitalWrite(F, d);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 3
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, l);
      digitalWrite(E, d);
      digitalWrite(F, d);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, d); //acende os leds que representam o número 4
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, d);
      digitalWrite(E, d);
      digitalWrite(F, l);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 5
      digitalWrite(B, d);
      digitalWrite(C, l);
      digitalWrite(D, l);
      digitalWrite(E, d);
      digitalWrite(F, l);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, d); //acende os leds que representam o número 6
      digitalWrite(B, d);
      digitalWrite(C, l);
      digitalWrite(D, l);
      digitalWrite(E, l);
      digitalWrite(F, l);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 7
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, d);
      digitalWrite(E, d);
      digitalWrite(F, d);
      digitalWrite(G, d);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 8
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, l);
      digitalWrite(E, l);
      digitalWrite(F, l);
      digitalWrite(G, l);
blinkDP();

      digitalWrite(A, l); //acende os leds que representam o número 9
      digitalWrite(B, l);
      digitalWrite(C, l);
      digitalWrite(D, d);
      digitalWrite(E, d);
      digitalWrite(F, l);
      digitalWrite(G, l);
blinkDP();

}

void blinkDP() { // pino pisca duas vezes

  for (int i=0; i<=3; i++) {
    if (ligaPonto)  {
      digitalWrite(PT, l);
    }   else  {
      digitalWrite(PT, d);
    }
    ligaPonto = !ligaPonto;
    delay(2000);
  }
  
}