Lecture de la tension d'une sonde Lambda et affichage

Petit retour et petit problème !

j'ai ce code !

// Déclaration et remplissage du tableau...
// ...représentant les broches des LEDs
const int leds[10] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
// le potentiomètre sera branché sur la broche analogique 0
const int potar = 0;
// variable stockant la tension mesurée
int tension = 0;

void setup()
{
  int i = 0;
  for (i = 0; i < 10; i++)
  {

    //tension de référence de 1.1V
    analogReference(INTERNAL);
    // déclaration de la broche en sortie
    pinMode(leds[i], OUTPUT);
    // mise à l'état haut
    digitalWrite(leds[i], HIGH);
  }
}


void loop()
{
  // on récupère la valeur de la tension du potentiomètre
  tension = analogRead(potar);
  // et on affiche sur les LEDs cette tension
  afficher(tension);
}


void afficher(int valeur)
{
  int i;
  for (i = 0; i < 10; i++)
  {
   if ( (valeur>=0) && (valeur<=40) ) 
      digitalWrite(leds[0],LOW); // on allume la LED 1
   else
      digitalWrite(leds[0],HIGH);

    if ( (valeur>=40) && (valeur<=125) ) 
      digitalWrite(leds[1],LOW); // on allume la LED 2
   else
      digitalWrite(leds[1],HIGH);


      if ( (valeur>=125) && (valeur<=169) ) 
      digitalWrite(leds[2],LOW); // on allume la LED 3
   else
      digitalWrite(leds[2],HIGH);


      if ( (valeur>=169) && (valeur<=211) ) 
      digitalWrite(leds[3], LOW); // on allume la LED 4
    else
      digitalWrite(leds[3], HIGH); // ou on éteint la LED 4


        if ( (valeur>=211) && (valeur<=515) ) 
      digitalWrite(leds[4], LOW); // on allume la LED 5
    else
      digitalWrite(leds[4], HIGH); // ou on éteint la LED 5


       if ( (valeur>=515) && (valeur<=770) ) 
      digitalWrite(leds[5], LOW); // on allume la LED 6
    else
      digitalWrite(leds[5], HIGH); // ou on éteint la LED 6


      if ( (valeur>=770) && (valeur<=815) ) 
      digitalWrite(leds[6], LOW); // on allume la LED 7
    else
      digitalWrite(leds[6], HIGH); // ou on éteint la LED 7


      if ( (valeur>=815) && (valeur<=854) ) 
      digitalWrite(leds[7], LOW); // on allume la LED 8
    else
      digitalWrite(leds[7], HIGH); // ou on éteint la LED 8


      if ( (valeur>=854) && (valeur<=897) ) 
      digitalWrite(leds[8], LOW); // on allume la LED 9
    else
      digitalWrite(leds[8], HIGH); // ou on éteint la LED 9


      if ( (valeur>=897) && (valeur<=1000) ) 
      digitalWrite(leds[9], LOW); // on allume la LED 10
    else
      digitalWrite(leds[9], HIGH); // ou on éteint la LED 10


  
}}

je l'ai appliqué au compte tour de ma voiture et cela a l'air de fonctionner correctement.

par contre quand je l'utilise sur la sonde lambda j'ai un scintillement de plusieurs leds. Ces leds se "déplacent" dans le "bon sens" mais il y a un manque de "précision" de fourchette de tension.
j'ai pourtant programmé chaque led pour une fourchette de tension mais plusieurs sont allumées ...

faudrait il placé un filtre quelque part ? Programmer autrement ?

merci