Be,guardando quì
t = micros(); // read time at start of sampling
for(s=0; s<1000; s++){ //take a number of samples
state = digitalRead(sigPin); //read state
if (state != oldstate){ //if state changes:
c++; //increment counter
oldstate = state; //and reset current state
}
}
usi la variabile s all'interno del ciclo for che a sua volta è usato per aumentare la variabile c e vista la formula usata per calcolare la frequenza
f = 1000000*c/t; //calculate frequency
riducendo il valore di s ad esempio s<500 la variabile c assumerà un valore pari alla metà rispetto al codice riportato sopra e di conseguenza anche la frequenza cambia.