Problèmes d'encodeur EC11

Rebonjour,

J'ai installé la bibliothèque « Encoder » suggérée par fdufnews et avec l'exemple « Basic.ino » qui utilise deux interruptions (dans mon cas broche 2 et 3) c'est d'une magnifique précision. Pour chaque pas sur l'encodeur, j'ai quatre changements d'état et une incrémentation de 4 pour le compteur « newPos ». Là, je ne manque plus rien ! Super !

Cela demande deux broches d'interruptions sur les six qu'il y a sur une carte Arduino Mega et j'utilise déjà quatre encodeurs dans mon cockpit et deux autres ne seraient pas de trop.

Alors, j'ai passé en mode une broche d'interruption (broche 2) et une broche sans interruption (broche 4) et là, je rencontre un problème. Je me retrouve avec une permutation de 0 et de 1, au lieu d'un changement d'état de deux ou trois et une incrémentation équivalente pour le compteur « newPos » !

Dans les autres exemples de la bibliothèque, je ne trouve rien qui corrige le problème !?!

Qu'est-ce que je fais de pas correcte ?

En voici ma version francisée :

#include <Encoder.h>

// Changer ces numéros de broches sur les broches connectées à votre encodeur.
// Meilleure performance: Deux broches ont une capacité d'interruption
// Bonnes performances: Seule la première broche est interruptif
// Faible performance: Aucune broche est interruptif
const byte ENCODEUR_1_SORTIE_A = 2;
const byte ENCODEUR_1_SORTIE_B = 4;
Encoder Encodeur_1 (ENCODEUR_1_SORTIE_A, ENCODEUR_1_SORTIE_B);
// Éviter d'utiliser des broches de LED attachés

void setup ()
{
  Serial.begin (115200);
  Serial.println ("Test de base d'Encoder :");
}

long Encodeur_1_EtatPrecedent  = -999;

void loop()
{
  long Encodeur_1_EtatActuel = Encodeur_1.read ();
  if (Encodeur_1_EtatActuel != Encodeur_1_EtatPrecedent)
  {
    Encodeur_1_EtatPrecedent = Encodeur_1_EtatActuel;
    Serial.println (Encodeur_1_EtatActuel);
  }
}

Merci d'avance pour vos lumières !

L'ami René
Tous pour un et un pour tous !