Potentiometre angulaire ne fait que augmenter

Merci pour vos conseils avisés :slight_smile:
j'avance pas mal du coup !

Voici à quoi ressemble mon code :

/*
    Compteur bobine
*/

#include <Wire.h>
#include "rgb_lcd.h"
#include "pitches.h"
#include <Encoder.h>

rgb_lcd lcd;

const int colorR = 45;
const int colorG = 100;
const int colorB = 21;

//potentiometre
 Encoder myEnc(2, 6);
 int PinSW = 4;


//compteur
 long metrage = 0;
 long compteur = 0;
 long compVal = 0;
 int PinCapteur = 3;

//buzzer
int buzPin = 5;

void setup() {

    // pinMode (outputA,INPUT_PULLUP);
    // pinMode (outputB,INPUT_PULLUP);
    // aLastState = digitalRead(outputA);  

     pinMode (PinCapteur, INPUT);
     pinMode (buzPin, INPUT_PULLUP);
     metrage = 10;
     myEnc.write(1);
     pinMode (PinSW, INPUT_PULLUP);

     digitalWrite(buzPin, LOW);
    // set up the LCD's number of columns and rows:
    lcd.begin(16, 2);
    Serial.begin(9600);
    
}

void loop() {

    resetCompteur();

    compteurAFF();
    
    ValMetrage();
  
    lcd.setCursor(0, 0);
    lcd.print("Long : ");
    lcd.print(metrage);
    lcd.setCursor(0, 1);
    lcd.print(compteur);

     delay(20);
     
    if (compteur >= metrage){
      
      playFailed();
      lcd.setRGB(255, 0, 0);
      } 
}

void playPassed() { /* function playPassed */
  ////Play 'ON' Sound
  int melodyOn[] = {NOTE_C5, NOTE_C6, NOTE_D5, NOTE_A6};
  int durationOn = 200;
  for (int thisNote = 0; thisNote < 4; thisNote++) {
    tone(buzPin, melodyOn[thisNote], durationOn);
    delay(200);
  }
 
}

void playFailed() { /* function playFailed */
  ////Play 'OFF' Sound
  int melodyOff[] = {NOTE_C3, NOTE_D3};
  int durationOff = 200;
  for (int thisNote = 0; thisNote < 2; thisNote++) {
    tone(buzPin, melodyOff[thisNote], durationOff);
    delay(200);
  }
}

void resetCompteur(){
  
  if (!(digitalRead(PinSW))) {      // Reset la position si on appui sur le potentiomètre
     compteur = 0;
     lcd.clear();
     lcd.setRGB(colorR, colorG, colorB);
     playPassed();
     
     delay(1000);
     
         }
  }

void compteurAFF(){
  
  if (digitalRead(PinCapteur) == LOW){
      compteur++;
      }
  }

void ValMetrage(){
  
  metrage = myEnc.read();
  }
/*********************************************************************************************************
    END FILE
*********************************************************************************************************/