Ajuda , Controle de Acesso

Bom pessoal é uma simples ajuda mas não estou conseguindo , como eu faço para que o contador só incremente mais 1 visitante apenas quando eu solte o botão?, pois se eu segurar ele ficar contando sem parar , o problema teoricamente é simples mas não achei a solução, agradeço desde já a ajuda dos amigos, valeu.

#include <LiquidCrystal.h>

const int botaoIncrementa = 30;
const int botaoReset = 36;     
int numeroVisitantes = 0;     //Cria a variavel onde vamos armazenar o numero de visitantes
LiquidCrystal lcd(53, 51, 49, 47, 45, 43);
void setup()
{
  pinMode(botaoIncrementa, INPUT);//Definindo o pino do botao como entrada
  pinMode(botaoReset, INPUT);     //Definindo o pino do botao como entrada
  digitalWrite(botaoIncrementa, HIGH);
  digitalWrite(botaoReset , HIGH);
  Serial.begin(9600);             // Inicia a comunicaçao serial
  lcd.begin(16,2);
  lcd.setCursor(3,0);
  lcd.print("VISITANTES");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
}

void loop()
{         

 
  if (digitalRead (botaoIncrementa) == LOW)
  {
  numeroVisitantes++; //Esse comando incrementa o numero de visitantes em 1
  Serial.print("Numero de Visitantes = ");
  Serial.println(numeroVisitantes);//Imprime na serial o valor da variavel
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("VISITANTES ");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
  lcd.print(numeroVisitantes);
  delay(500);
  } 
  
  if (digitalRead(botaoReset) == LOW) 
 { 
  numeroVisitantes = 0; //Reseta o numero de visitantes para zero
  Serial.print("Numero de Visitantes = ");
  Serial.println(numeroVisitantes);//Imprime na serial o valor da variavel
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("VISITANTES ");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
  lcd.print(numeroVisitantes);
  delay(500);
  }
}

Vinicius1000:
Bom pessoal é uma simples ajuda mas não estou conseguindo , como eu faço para que o contador só incremente mais 1 visitante apenas quando eu solte o botão?, pois se eu segurar ele ficar contando sem parar , o problema teoricamente é simples mas não achei a solução, agradeço desde já a ajuda dos amigos, valeu.

Você guarda no Status o valor atual, e no Status_Antes o anterior, se ele estiver em HIGH e antes estava em LOW, ai vc acrescenta 1.

#include <LiquidCrystal.h>
int Status_Antes;
int Status;
const int botaoIncrementa = 30;
const int botaoReset = 36;     
int numeroVisitantes = 0;     //Cria a variavel onde vamos armazenar o numero de visitantes
LiquidCrystal lcd(53, 51, 49, 47, 45, 43);
void setup()
{
  pinMode(botaoIncrementa, INPUT);//Definindo o pino do botao como entrada
  pinMode(botaoReset, INPUT);     //Definindo o pino do botao como entrada
  digitalWrite(botaoIncrementa, HIGH);
  digitalWrite(botaoReset , HIGH);
  Serial.begin(9600);             // Inicia a comunicaçao serial
  lcd.begin(16,2);
  lcd.setCursor(3,0);
  lcd.print("VISITANTES");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
}

void loop()
{         
  
  Status = digitalRead (botaoIncrementa);
  if (Status == LOW)
  {
  Status_Antes = LOW;
  }

  if (Status_Antes == LOW & Status == HIGH)
  {
  Status_Antes = HIGH;
  numeroVisitantes++; //Esse comando incrementa o numero de visitantes em 1
  Serial.print("Numero de Visitantes = ");
  Serial.println(numeroVisitantes);//Imprime na serial o valor da variavel
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("VISITANTES ");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
  lcd.print(numeroVisitantes);
  delay(500);
  } 
  
  if (digitalRead(botaoReset) == LOW) 
 { 
  numeroVisitantes = 0; //Reseta o numero de visitantes para zero
  Serial.print("Numero de Visitantes = ");
  Serial.println(numeroVisitantes);//Imprime na serial o valor da variavel
  lcd.clear();
  lcd.setCursor(3,0);
  lcd.print("VISITANTES ");
  lcd.setCursor(0,1);
  lcd.print("CONTADOR= ");
  lcd.print(numeroVisitantes);
  delay(500);
  }
}

Obg mmoscz pela atenção, é vivendo e aprendendo , valeu cara.