Inserir timer em um botão

Olá!
Veja se este serve.

const byte botao = 4;
unsigned long millis_antes = 0;

void setup()
{
  Serial.begin(38400);
  pinMode(botao, INPUT_PULLUP);
}
void loop()
{
 Serial.println(digitalRead(botao));

  if(digitalRead(botao) == false)
  {
    millis_antes = millis();
  }
  while(digitalRead(botao) == false)
  {
   if((millis() - millis_antes) > 3000)
   {
    Serial.println("Hello!"); 
   }
  }
}

Abraço.