De nombreux appareils présentent des boutons rotatifs de réglage. On peut tourner dans un sens ou dans l’autre pour augmenter ou diminuer une valeur qui s’affiche à l’écran. La fonction est identique à deux boutons poussoirs (un bouton marqué « + » et un bouton marqué « -« ). Mais que se cache-t-il derrière le bouton rotatif ? Une roue codeuse, aussi appelée encodeur rotatif ou codeur incrémental…

le codeur incremental principe 0

Codeur incrémental démonté (c’est le réglage de volume d’un ampli home cinéma)

On pourrait croire à un potentiomètre sans butée (potentiomètre sans fin) mais ce n’est pas le principe d’une résistance ajustable. Si certains parlent de potentiomètre sans butée, c’est un abus de langage.

L’encodeur rotatif présente 3 bornes. Il y a une borne commune et deux autres bornes. Ces deux bornes sont tantôt reliées tantôt non reliées à la borne commune.

le codeur incremental principe 1

Schéma du codeur incrémental : association de deux interrupteurs

Lorsqu’on le tourne, il va tantôt faire contact, tantôt non contact entre la borne commune et une borne. La borne est donc tantôt reliée à la borne commune, tantôt flottante. La borne commune peut être la masse (0V). En fait, une résistance de tirage (pull up) est reliée chacune des bornes. La borne est au niveau de l’alimentation (5V par exemple) lorsque l’encodeur ne fait pas contact, et à 0V lorsque l’encodeur fait contact.

On peut appeler niveau logique « 0 » le 0V et niveau logique « 1 » le 5V.

Pour déterminer le sens de rotation, une autre borne est montée dans l’encodeur rotatif (appelons la la borne « B » et l’autre borne la borne « A »), mais avec un décalage des contacts. Lorsqu’on tourne l’encodeur rotatif, la borne « A » et la borne « B » vont toutes les deux passer de 0V à 5V et inversement. Mais il existe un décalage. Si on tourne dans un sens, c’est d’abord la borne « B » qui passe de 0V à 5V, si on tourne dans l’autre sens, c’est la borne « A » qui passe d’abord à 0V. Le système électronique interprète cela comme tourner vers la gauche ou tourner vers la droite pour augmenter ou diminuer le volume sonore, ou tout autre réglage numérique :

le codeur incremental principe 2

Principe de fonctionnement de l’encodeur rotatif

Si on lit dans l’ordre les valeurs logiques de la borne « A » puis de la borne « B », on forme un mot binaire à 2 caractères.

Lorsqu’on ne tourne pas l’encodeur, rien ne se passe d’un point de vue électrique.

Si on se déplace vers la droite (pour augmenter le volume de l’ampli), le mot binaire va successivement prendre ces valeurs :

le codeur incremental principe 3

Principe de l’encodeur rotatif : valeurs binaires

Quand on va vers la droite, on a donc AB = 11, puis AB = 10, puis AB = 00

On a ensuite l’enchainement AB = 00, puis AB = 01, puis AB = 11

Le système interprète donc comme « tourner vers la droite » ou « augmenter de 1 » les suites suivantes :

00 -> 0101 -> 1111 -> 1010 -> 00

Si on tourne l’encodeur dans l’autre sens, les enchainements suivants auront lieu :

00 -> 1010 -> 1111 -> 0101 -> 00

On peut imaginer pour plus de robustesse du système qu’il faille reconnaître 2 basculements successifs pour interpréter « augmenter de 1 » :

00 -> 01 -> 11

ou bien

11 -> 10 -> 00

et pour interpréter « diminuer de 1 » :

00 -> 10 -> 11

ou bien

11 -> 01 -> 00

Si l’encodeur passe brutalement de 00 à 11, il y a un problème ! Cette situation ne doit jamais se produire. Mais en pratique, physiquement, les deux contacts ne peuvent pas commuter exactement au même instant… Il y en a toujours un qui fait contact avant ou après l’autre. Donc fonctionnement erratique du système électronique possible. Ou bien l’électronique ne va pas prendre en compte la transition.

Boitiers des codeurs incrémentaux

les codeurs incrémentaux (encodeur rotatif) se présentent comme des potentiomètres à monter sur carte électronique. D’où la confusion avec les potentiomètres qui seraient sans butée… Voici quelques exemples de codeurs incrémentaux de chez Alps :

le codeur incremental principe 4

Codeurs incrémentaux : différents boitiers mécaniques

Réalisation physique d’encodeur rotatif (codeur incrémental)

Les encodeurs rotatifs forment une alternance de contact et d’absence de contact, décalée de 1/4 de période angulaire. Voici un encodeur qui a été démonté :

le codeur incremental principe 5

Après démontage (considérez que le démontage est définitif, ce codeur incrémental a été sacrifié pour la démonstration). Son prix est de 2 euros.

le codeur incremental principe 6

Codeur incrémental ouvert : curseurs et zones de contacts

Un curseur particulier à 3 languettes métalliques est fixé à l’axe rotatif. C’est ce curseur qui tourne quand on tourne le bouton :

le codeur incremental principe 7

Détails sur le curseur de l’encodeur rotatif (codeur incrémental)

Un support avec des alternances métalliques et isolantes :

le codeur incremental principe 8

le codeur incremental principe 9

Alternances conductrices et isolantes de l’encodeur rotatif

Une des languettes du curseur est toujours sur le tiers en métal plein (la borne commune). Chacune des deux autres languettes du curseur sont toujours dans le tiers respectif correspondant à la borne A ou la borne B. Si on tourne indéfiniment le codeur, ce ne sera pas toujours la même languette du curseur qui sera sur la borne commune, la borne A et la borne B, mais peu importe. L’essentiel est que les 3 languettes soient toujours reliées ensemble.

Il y a toujours une usure mécanique et une durée de vie à ces encodeurs rotatifs, étant donné qu’il s’agit d’un curseur qui se déplace lorsqu’on tourne le bouton (entre 10000 et 100000 tours). Il y a aussi une tension et un courant maximum à ne pas dépasser sur le codeur incrémental, sinon sa durée de vie sera sévèrement réduite.

On peut naturellement tourner le bouton indéfiniment (pas de butée, pas de fin), mais la durée de vie est là :

le codeur incremental principe 10

Codeur incrémental Alps série EC12

Codeurs incrémentaux sans contact

On peut réaliser des codeurs incrémentaux à partir de roues à fente : il faut une LED d’un côté de la roue et une photodiode de l’autre côté. L’alternance de matière opaque et de fente permet de créer des niveaux électriques binaires (0 et 1) sans contact. Mais il faut se rappeler qu’une LED présente aussi une durée de vie (sa luminosité faiblit avec les années d’utilisation).

On peut aussi créer des mots binaires et des divisions par deux en faisant un secteur angulaire d’une largeur double à côté d’un autre :

le codeur incremental principe 11

Mots binaires sur un codeur incrémental

B00P0BPMI4

Exemples de codeur incrémental

Voici quelques exemples d’appareils utilisant un codeur incrémental (encodeur rotatif) :

– réglage de minuteries sur les fours- guichets automatiques (la molette pour faire défiler vers le haut ou vers le bas un menu)- distributeurs automatiques- volume sonore des amplis home cinéma- applications et réalisation à base de cartes Arduino- etc…

le codeur incremental principe 12

Bouton de volume sans butée : codeur incrémental et son électronique cachés derrière