Problèmes d'encodeur EC11

Salut

Merci de poursuivre les recherches de solution avec moi !

J'ai testé ton code sur Arduino Mega R3 avec les trois configurations typiques, et à tour de rôle, une dizaine de clics à droite avec les deux encodeurs, puis une dizaine de clics à gauche avec encore les deux encodeurs :

Encoder knobLeft(20, 22);
Encoder knobRight(21, 23);

Et en sortie, ça donne cela :

TwoKnobs Encoder Test:
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = 0, Right = 0
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0
Left = -1, Right = 1
Left = -1, Right = 0

À gauche (20, 22), newLeft ne donne que des 0 et des -1, pas de 1. À droite (21, 23), newRight ne donne que des 0 et des 1, pas de -1.

J'ai testé ton code avec :

Encoder knobLeft(18, 19);
Encoder knobRight(20, 21);

Et en sortie, ça donne cela :

TwoK0, Right = 0
TwoKnobs Encoder Test:
Left = 0, Right = 0
Left = 1, Right = 0
Left = 2, Right = 0
Left = 3, Right = 0
Left = 4, Right = 0
Left = 5, Right = 0
Left = 6, Right = 0
Left = 7, Right = 0
Left = 8, Right = 0
Left = 9, Right = 0
Left = 10, Right = 0
Left = 11, Right = 0
Left = 12, Right = 0
Left = 13, Right = 0
Left = 14, Right = 0
Left = 15, Right = 0
Left = 16, Right = 0
Left = 17, Right = 0
Left = 18, Right = 0
Left = 19, Right = 0
Left = 20, Right = 0
Left = 19, Right = 0
Left = 18, Right = 0
Left = 17, Right = 0
Left = 16, Right = 0
Left = 15, Right = 0
Left = 14, Right = 0
Left = 13, Right = 0
Left = 12, Right = 0
Left = 11, Right = 0
Left = 9, Right = 0
Left = 8, Right = 0
Left = 7, Right = 0
Left = 6, Right = 0
Left = 8, Right = 0
Left = 7, Right = 0
Left = 6, Right = 0
Left = 5, Right = 0
Left = 4, Right = 0

À gauche (18, 19), newLeft s'incrémente correctement, mais à droite (20, 21), newRight rien, pas même des 0.

J'ai testé ton code avec :

Encoder knobLeft(14, 15);
Encoder knobRight(22, 23);

Et en sortie, ça donne cela :

TwoKnobs Encoder Test:
Left = 0, Right = 0
Left = 1, Right = 0
Left = 2, Right = 0
Left = 3, Right = 0
Left = 4, Right = 0
Left = 5, Right = 0
Left = 6, Right = 0
Left = 7, Right = 0
Left = 8, Right = 0
Left = 9, Right = 0
Left = 10, Right = 0
Left = 11, Right = 0
Left = 12, Right = 0
Left = 13, Right = 0
Left = 14, Right = 0
Left = 15, Right = 0
Left = 16, Right = 0
Left = 17, Right = 0
Left = 18, Right = 0
Left = 19, Right = 0
Left = 20, Right = 0
Left = 20, Right = -1
Left = 20, Right = -2
Left = 20, Right = -1
Left = 20, Right = -2
Left = 20, Right = -3
Left = 20, Right = -4
Left = 20, Right = -5
Left = 20, Right = -6
Left = 20, Right = -4
Left = 20, Right = -5
Left = 20, Right = -4
Left = 20, Right = -2
Left = 20, Right = 0
Left = 20, Right = -1
Left = 20, Right = -2
Left = 20, Right = -3
Left = 20, Right = -4
Left = 20, Right = -5
Left = 20, Right = -4
Left = 20, Right = -5
Left = 20, Right = -6
Left = 20, Right = -7
Left = 20, Right = -8
Left = 19, Right = -8
Left = 20, Right = -8
Left = 19, Right = -8
Left = 18, Right = -8
Left = 17, Right = -8
Left = 16, Right = -8
Left = 15, Right = -8
Left = 14, Right = -8
Left = 13, Right = -8
Left = 12, Right = -8
Left = 11, Right = -8
Left = 10, Right = -8
Left = 9, Right = -8
Left = 8, Right = -8
Left = 7, Right = -8
Left = 6, Right = -8
Left = 5, Right = -8
Left = 4, Right = -8
Left = 3, Right = -8
Left = 2, Right = -8
Left = 1, Right = -8
Left = 0, Right = -8
Left = -1, Right = -8
Left = -2, Right = -8
Left = -3, Right = -8
Left = -4, Right = -8
Left = -4, Right = -7
Left = -4, Right = -6
Left = -4, Right = -5
Left = -4, Right = -4
Left = -4, Right = -3
Left = -4, Right = -2
Left = -4, Right = -1
Left = -4, Right = 0
Left = -4, Right = 1
Left = -4, Right = 2
Left = -4, Right = 3
Left = -4, Right = 4
Left = -4, Right = 5
Left = -4, Right = 6
Left = -4, Right = 7
Left = -4, Right = 8
Left = -4, Right = 9
Left = -4, Right = 10
Left = -4, Right = 11
Left = -4, Right = 10
Left = -4, Right = 11
Left = -4, Right = 12
Left = -4, Right = 13
Left = -4, Right = 14
Left = -4, Right = 13
Left = -4, Right = 14
Left = -4, Right = 15
Left = -4, Right = 16

À gauche (14, 15), newLeft s'incrémente correctement. À droite (22, 23), newRight s'incrémente correctement

Désolé pour les mauvaises données précédentes dues aux mauvais branchements !

L'ami René