Avviare timer con pulsante

Ciao Ragazzi, vediamo se trovo un’anima gentile e che mi possa aiutare.
Mi servirebbe il codice per far partire un timer attraverso la pressione di un pulsante, rilascio il pulsante ( quindi torna a riposo ) ripremo quest’ultimo interrompe il timer e subito dopo leggere un’altra parte di codice
quindi:

Premo → si avvia il tempo → rilascio pulsante ( ritorna aperto )
premo → blocca il timer → legge altro

#include <Tone.h>
Tone tone1;

int Scount = 20; // Setta i secondi
int Mcount = 0; // Setta i minuti
int Hcount = 0; // Setta le ore
int DefuseTimer = 0; // imposta il timer a 0

long secMillis = 0; // store last time for second add
long interval = 1000; // Intervallo per secondi

int i = 0; 

int ledPin13 = 13; // Comando relè sirena
const int buttonPin = 4;    // Ingresso ( pin ) pulsante disinnesco


void setup(){


  pinMode(ledPin13, OUTPUT); // imposta il pin digitale come output
  pinMode(buttonPin, INPUT); // imposto il pin del pulsante come input disinnesco
  tone1.begin(8);

}

//------------------------------------------------------------



void loop()
{

  timer();
}
 


  
void timer()
{

  if (Hcount <= 0)
  {
    if ( Mcount < 0 )
    {

  while (Mcount < 0) 
      {
        digitalWrite(ledPin13, HIGH); // Abilita sirena ingresso 13 per mancato disinnesco
        tone1.play(NOTE_G2, 90); // Suono in caso di ancato disinnesco

      }
    } 
  }

//----------- INSERIRE QUI IN COMANDO DI INNESCO --------------------------
  
  if (Hcount <0) 
    {
      Hcount = 0; 
    }

  if (Mcount <0) 
    {
      Hcount --; 
      Mcount = 59; 
    }

  if (Scount <1) // if 60 do this operation
    {
      Mcount --; // add 1 to Mcount
      Scount = 59; // reset Scount
    }

  if (Scount > 0 ) // do this oper. 59 times

    {
      unsigned long currentMillis = millis();
  
      if(currentMillis - secMillis > interval) 
        {
          tone1.play(NOTE_A7, 200); // TONO CONTEGGIO SECONDI
          secMillis = currentMillis;
          Scount --; // add 1 to Scount
        }
    }
}

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili