Saludos compañeros, este es mi primer post, habitualmente vengo aquí a consultar dudas pero hasta hoy me topé con un problema que al parecer es super simple pero no logro resolver.
El código debe hacer lo siguiente, cuando se presione largo el botón, el numero de pulsaciones las paso a un contador, y cuando sea superior a 3, debe volver a 0, no logro hacer que vuelva a cero, pues si coloco un if(n>3){(n=0)} ya no cambia el valor de n y se queda en 0, ¿cómo puedo hacer que n vuelva al origen y se reinicie el contador?
Gracias por su ayuda.
const int boton = 2;
int tiempo = 0;
int tiempo2 = 0;
int tiempo3 = 0;
int button3State = 0;
int valor = 0;
int contar = 0;
int n = 0;
void setup()
{
pinMode(boton, INPUT);
Serial.begin(115200);
}
void loop()
{
button3State = digitalRead(boton);
if (button3State == HIGH){
tiempo=millis();
while(button3State == HIGH) {
tiempo2=millis();
button3State = digitalRead(boton);
}
tiempo3=tiempo2-tiempo;
Serial.print(tiempo3);
if (tiempo3 <= 700)
{
Serial.println("pulsacion corta");
}
if (tiempo3 >= 701){
contar++;
n=contar;
Serial.print("pulsación larga");
Serial.print(n);
}
}
}