duvida com botão(sou novo no forum)

pessoal estou com um problema no acionamento do botão… O código possue um contador onde só acrescenta +1 quando o botão é pressionado, mais ele esta incrementando tambem quando solto o botão. e este é meu problema. como corrigir isso?

unsigned long tmp_alt = millis();

  if (digitalRead(bt) == HIGH) {
    
    if (tmp_alt - ult_tempo <= tmp_acionado) {
     
      contador++;
      
      ult_tempo = tmp_alt;
      delay(500);
      Serial.println(contador);
      
    }

    if (tmp_alt - ult_tempo >= tmp_acionado) {
      contador = 0;
      tmpcon = 1;
      ult_tempo = tmp_alt;
    }
  }
Se você postar aqui, deverá postar em inglês. Há uma parte de Portuges no site. 
Veja as suas declarações IF.
[iurl=https://forum.arduino.cc/index.php?board=35.0]https://forum.arduino.cc/index.php?board=35.0[/iurl]

Desculpe minha ignorância... Devo postar a pergunta em inglês ? E referente ao código, também não consegui entender qual o erro... A lógica que pensei foi. Ele aciona com quando a variável contador chega a 3, mais ela só pode ser incrementada se o botão for pressiona três vezes dentro de 2 segundos, se o mesmo for pressionando uma ou duas vezes e passar de 2 segundos antes de ser pressionando pela terceira vez ele zera a variável. O problema e que quando pressiono o botão ele conta 1 e quando solto ele conta mais um. Deveria contar somente uma vez. Não consigo entender onde estou errando