Tachomètre pour tour à métaux

Est ce que c'est possible de faire quand même avec un interrupteur ?

//progr tachomètre v1

unsigned long temps = millis();
int bp = 4; //l'interrupeteur sur l'éntrée 4
int bp2 = 5; //l'interrupeteur qui démarre la séquence de calcul de tr/min
int nbrtours = 0; 
unsigned long tps_mesure_commence = 0;
unsigned long dernier_changement = 0;


void setup() {
  Serial.begin(9600);
  Serial.print("Lancement programme"); ///pour vérifier que la liason série marche
  delay(1000);
}

void loop() {
  
  if(bp2 == 1) {
    Serial.print("La mesure commence dans 1sec");
    delay(1000);
    tps_mesure_commence = temps;

    while(temps + tps_mesure_commence <= 60000){ //on compte le nbr de tours pendant 1 min soit 60s
       if(bp == 1) {
         nbrtours = nbrtours+1;
         delay(2); //on attend 2 milliseconde le tps que la lamelle "parte", *****cette ligne je ne sais pas trop*****
       }
    Serial.print(nbrtours, "tr/min");
    } 
  }
}

Voila le code fait, je ne l'ai pas encore testé.