Uso di millis() per iniziare

Ecco il tuo programma modificato in modo che funzioni, non ho fatto altro che seguire la traccia che ti avevo scritto, ho modificato il pin out per usare il led di Arduino, così ha un riscontro visivo immediato senza dover collegare nulla.

int ins_val; 
unsigned long contatore;
boolean stato;

void setup()
{
pinMode(13, OUTPUT);
stato = true;
Serial.begin(9600);
contatore = 0;
}

void loop()
{
 if (Serial.available() > 0)
  {
   ins_val = Serial.read();
   if (ins_val == 'H') stato = true;
  }   
  
 if(stato == true)
  {
   contatore = millis() + 1000;
   digitalWrite(13, HIGH);
   stato = false;
   Serial.println("Tempo iniziale");
   Serial.println(millis());
  }

 if (contatore < millis() & contatore > 0)
  {
   digitalWrite(13, LOW);
   stato = false;
   Serial.println("tempo dopo il confronto"); 
   Serial.println(millis());
   contatore = 0;
  }
}