Problemas para finalizar código Contador Progressivo

Boa noite amigos,

Quero implementar um contador progressivo, com Arduino Uno controlando dois displays sete segmentos, que quando acionado e mantido acionado um push botton o contador inicie a contagem de tempo em segundos, ao desligar o botão, o contador mantenha a informação da contagem e zere quando o botão for acionado de novo, reiniciando a contagem.

Exatamente como no vídeo abaixo, mas não encontro esse código:
https://www.youtube.com/watch?v=ys5W6V0ciDc

O código vai até a contagem, mas está sem o push botton , se alguém puder colaborar e me ajudar a resolver esse problema de iniciante.
Abs

const int display_1_Pinout[7] = { 2, 3, 4, 5, 6, 7, 8 };
const int display_2_Pinout[7] = { 9, 10, 11, 12, A0, A1, A2 };
const byte anodeDisplay[10] =
{
0b1000000, //0
0b1111001, //1
0b0100100, //2
0b0110000, //3
0b0011001, //4
0b0010010, //5
0b0000010, //6
0b1111000, //7
0b0000000, //8
0b0010000, //9
};//
void setup()
{
for(int i = 0; i < 7; i++)
{
pinMode(display_1_Pinout[i], OUTPUT);
pinMode(display_2_Pinout[i], OUTPUT);
}
}/
/
void Display_2_Write(int number)
{
byte numberBit = anodeDisplay[number];
for (int i = 0; i < 7; i++)
{
int bit = bitRead(numberBit, i);
digitalWrite(display_2_Pinout[i], bit);
}
}/
/
void Display_1_Write(int number)
{
byte numberBit = anodeDisplay[number];
for (int i = 0; i < 7; i++)
{
int bit = bitRead(numberBit, i);
digitalWrite(display_1_Pinout[i], bit);
}
}/
/
void Display_Show(int number)
{
int units = number % 10;
int tens = number / 10;
Display_1_Write(units);
Display_2_Write(tens);
}/
*********************************************/
void loop()
{
for(int cnt=0; cnt<100; cnt++)
{
Display_Show(cnt);
delay(1000);
}
delay(10000);
}

Darei uma olhada assim que possível, domingo é complicado.

Tudo bem, sei como é! Agradeço desde já. (estou tão focado nesse projeto que perco os dias da semana kkk)
Ajuda o link no TinkerCard?

Abração

Vai ajudar bastante, pois não precisarei elaborar do zero.

Tem o botão ligado no A3 e no GR que poderia ser o local dele para ativação (ou outro local).
Somente coloquei um botão deslizante no alimentação dos displays, mas ao desligar e ligar o display não zera; só zera pelo botão reset da placa. Esse botão não precisa ficar aí.

A ideia vc entendeu então, botão ligado = contador crescente em segundos
botão desligado = contador mostra último tempo
botão pressionado novamente = contador zera e reinicia a contagem

Oi amigo. Avancei um pouco no projeto.
O botão deslizante agora inicia a contagem, e para a contagem ao voltar ai estado LOW
Agora, o problema é que não acho o código para resetar automático logo que o botão volta a ser acionado (ele segue a contagem).
Está aqui no tinkercard, agradeço se der uma olhada!

O que eu consegui até agora:

  1. Controlar um display de sete segmentos, dois dígitos, dez pinos. Entendi que esse display já vem multiplexado, assim sendo cátodo ficou tranquilo montar o circuito.

Usei um Sketch do www.diarioeletronicohoy.com que permite contagem progressiva 0-99. Carreguei na placa e funciona.

  1. Adicionei um sensor de vibração (sw-420) e coloquei ele como um botão, assim, quando HIGH ele faz o contador iniciar, e quando LOW o contador para.

  2. E aqui que eu parei também; não consigo programar: ao parar o sensor: delay de 1 segundo, e em seguida zerar para começar nova contagem.

O zerar está difícil: estudei interrupção (atende pois sensor está no pino 2) para controlar isso, não consegui; botei return, também não acertei como fazer. Estou tentando entender se o MIlis faz esse controle, enquanto isso vim aqui perguntar:

O que sugeres?

Desde já agradeço!