Joli tuto, merci Daudet.Les signaux A et B sont décalés en quadrature (on dit aussi à 90° ou en Grecque) et chaque période de A (et donc de B) indique que le codeur a fait un pas sachant que le nombre de pas par tour peut aller de 32 à 8096 suivant le prix du codeur.
Pour détecter le sens de rotation, Il faut regarder si les transitions positives de A sont avant ou après les transitions positives de B . Par contre, si on est un peu futé, on peut augmenter la résolution apparente par quatre en utilisant toutes les transitions.
Si chaque variable peut prendre la valeur 1 ou 0, et que l'on a 2 variables, on a seulement quatre possibilités.
Comme tu l'indiques, on peut à certaines conditions, accroître la résolution en décrétant que chaque fois que l'on a un changement d'état, on a un pas de franchi. On a ainsi 16 pas par tour au lieu de 4. Mais ça devient plus critique à gérer, on n'a rien sans rien.
J'ai un exemple de programme Arduino pour interfacer un compteur incrémental 2 canaux, mais il est sur un autre ordi. Je vais l'envoyer plus tard...
Mon programme n'utilise pas d'interruptions. Selon l'initiateur du fil (s'il nous lit encore...)l'Arduino servirait seulement à interfacer la roue codeuse. Inutile dans ce cas d'utiliser des interruptions.
-----