Sur un de mes projets, les librairies Encoder ou Rotary fonctionnaient mal (un click générait plusieurs incrémentations/décrémentations), avec un encodeur acheté sur AliExpress.
Avec un vrai Bourns le fonctionnement était OK. Donc tout dépend de l'encodeur.
Je me suis inspiré de ce code :
Je l'ai simplement transformé en classe C++ (post #5)