Problème Programmation Anémomètre

non ce n'est pas ce que j'ai conseillé...

--> où est la variable volatile?
--> la section critique doit être réduite à sa plus simple expression comme indiqué plus haut dans mon code...

  unsigned int nbrtourCopie;
  noInterrupts(); // désactive les interruptions
  nbrtourCopie =   nbrtour;
  nbrtour = 0;
  interrupts(); // réactive les interruptions

  // ici maintenant vous êtes tranquille vous avez dans nbrtourCopie la valeur lue que vous utilisez pour les calculs


  // C'EST ICI QUE VOUS FAITES LE BOULOT D'AFFICHAGE

Pour la gestion par millis(), c'est juste dans l'autre sens.. if(millis() - temps > 500) {...} (en supposant que temps c'est la valeur de millis() la dernière fois que vous avez effectué les calculs --> avec 500 ça vous ferait lire le compteur 2 fois par secondes, c'est un peut trop... plutôt toutes les 5 ou 10 secondes ce serait mieux --> 5000 ou 10000