interruption avec capteur à fourche

Bonjour à tous,
J'ai pour projet de mesurer la distance parcouru par une roue à trous grâce à un capteur à fourche. J'aimerais utiliser la technique de l'interruption. J'ai réalisé un code, mais il n(est pas fonctionnel. Pouvez vous m'aider à comprendre mes erreurs s'il vous plait?

const byte ledPin = 13;
const byte interruptPin = 2;
int nbrTOUR;
int nbrTour;
volatile byte state = CHANGE;

void setup() {
  Serial.begin (9600);
  pinMode(ledPin, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), Compteur, CHANGE);
}

void loop() {
  digitalWrite(ledPin, state);
  if (nbrTOUR > 6) {
  nbrTour = nbrTOUR/6;
  Serial.println("Le nombre de tour est");
  Serial.print (nbrTour);
  }
}

void Compteur () {
  state = !state;
  nbrTOUR = 0;
  nbrTOUR++;
}

Pouvez vous m'aider à comprendre mes erreurs s'il vous plait?

Effectivement il y en a plusieurs :

int nbrTOUR;                           // devrait être volatile
volatile byte state = CHANGE;   // quelle utilité ?

  nbrTOUR = 0;
  nbrTOUR++;                         // nbrTOUR vaudra toujours 1 en sortie

EDIT : il me semble également qu'activer l'interruption sur changement (CHANGE) n'est pas une bonne idée. RAISE ou FALL serait plus correct (une seule interruption par trou).

Merci beaucoup pour votre aide!

“nbrTOUR = 0;
nbrTOUR++; // nbrTOUR vaudra toujours 1 en sortie”

Savez vous comment je peux modifier ça afin d’avoir le nombre de tour total?
Ou faut il que je modifie une partie du Loop.

void loop() {
  digitalWrite(ledPin, state);
  if (nbrTOUR > 6) {
  nbrTour = nbrTOUR/6;
  Serial.println("Le nombre de tour est");
  Serial.print (nbrTour);
  }
}

Bonjour,

Il suffit de supprimer l'instruction nbrTOUR = 0;

Si tu incrémentes nbrTOUR il vaut mieux éviter de le remettre à ZÉRO (nbrTOUR = 0;) juste avant dans la routine d'interruption, tu ne crois pas ?

nbrTOUR est un entier signé il vaudra au maximum 32767 (0x7fff).
Cela peut suffire mais toi seul peut en décider.
Si cela ne suffit pas, déclare-le en unsigned long (valeur maxi 0xffffffff ou 4294967295).
J'espère que tu as ajouté "volatile".

Merci beaucoup, désolé de mon niveau, je découvre arduino.
PS: j'ai bien fais toutes les modifications que vous m'avez données (le "volatile" aussi).