Electronique > Théorie > Encodeur optique

Dernière mise à jour : 07/09/2009

encodeurs_optiques

Présentation

Un encodeur optique (parfois aussi appelé roue codeuse optique) est un composant électromécanique qui peut prendre différentes formes, et qui dans bien des cas ressemble beaucoup à un potentiomètre. Mais contrairement à ce dernier, l'encodeur possède un axe dont le déplacement n'est limité ni vers la gauche ni vers la droite : il peut être tourné indéfiniment dans un sens comme dans l'autre, il n'y a pas de butée.

encodeur_optique_001

Ce genre de composant peut être utilisé pour décrémenter ou incrémenter la valeur de différents paramètres dans un système électronique, tel un four à micro-ondes avec affichage numérique, par exemple. Il permet de déterminer une position, la vitesse et le sens de rotation.

Fonctionnement général

Si le potentiomètre classique possède trois pattes, l'encodeur optique "classique" en possède souvent quatre (parfois cinq) : deux pattes pour son alimentation (il y a en effet une led à l'intérieur qui nécessite du courant pour s'allumer) et deux pattes pour la sortie des "données", ces dernières étant généralement mises à disposition sur des pattes nommées A et B (l'éventuelle troisième sortie - appelée signal de référence ou zéro - renvoie une impulsion par révolution complète). Il existe plusieurs types d'encodeurs optiques, avec des structures internes plus ou moins différentes, mais le principe de base reste le même : la led intégrée éclaire des capteurs sensibles à la lumière au travers de trous pratiqués dans un disque physiquement solidaire de l'axe manoeuvrable par l'utilisateur.

encodeur_optique_disque_001c

S'il n'y avait qu'un seul capteur sensible à la lumière, on disposerait déjà d'un système capable de produire des impulsions électriques à un rythme qui dépendrait de la vitesse de rotation de l'axe. Par exemple, si le disque intercallé entre led émettrice et récepteur photosensible possède 200 trous régulièrement espacés sur son pourtour, on obtiendrait 200 impulsions pour une rotation complète de l'axe. Ce serait déjà pas mal, mais en aucun cas ne permettrait de savoir dans quel sens l'axe évolue. Pour déterminer le sens de rotation, un deuxième capteur photosensible est installé à une certaine distance du premier, de telle sorte que les informations délivrées par les deux capteurs - qui reçoivent tous deux de la lumière mais pas au même moment - soient décallées dans le temps. Le schéma suivant représente l'encodeur optique RES20-50-200 de COPAL, constitué d'une led avec sa résistance de limitation de courant intégrée, et les deux photodétecteurs (phototransistors NPN) câblés en collecteur commun, sorties A et B disponibles sur leurs jonctions émetteur (pour pouvoir exploiter ces sorties, il faut mettre une résistance entre chaque émetteur et la masse).

encodeurs_optiques_bases_000ab encodeurs_optiques_bases_000ab

Le décallage temporel en question (entre sorties A et B) est généralement de Pi / 2, ce qui correspond à un décallage de 1/4 du temps occupé par une période complète. On parle aussi de signaux en quadrature, ne soyez donc plus surpris de lire "encodeur optique à quadrature" dans telle ou telle publicité, ça vient de là. Mais un petit diagramme vaut mieux qu'un grand discours...

encodeurs_optiques_bases_000a

L'écart temporel entre les impulsions des deux sorties peut être obtenu de plusieurs façons : les deux récepteurs photosensibles peuvent être éclairés par un même trou placé sur une même circonférence, ou par deux trous différents, chacun situé sur un cercle concentrique qui lui est propre. Mais au final, on obtient la même chose sur les sorties A et B, deux signaux périodiques de "fréquences" égales mais décallés en phase de Pi / 2.

Détermination du sens de rotation
Comme vu précédement, le sens de rotation peut être deviné en regardant de quelle façon les sorties A et B changent d'état logique. Cela est facile à faire, il suffit de prendre une des deux sorties comme référence et de regarder ce qui se passe sur l'autre. Si l'on décompose dans le temps les différentes solutions binaires qu'offrent les deux sorties, on se rend compte qu'il n'existe que quatres possibilitées - ce qui n'a rien de surprenant puisqu'on travaille sur deux bits - qui sont espacées de façon égales dans le temps.

Rotation dans le sens horaire
Supposons pour commencer que les deux sorties soit à l'état logique bas. En tournant l'axe de l'encodeur dans le sens des aiguilles d'une montre, la sortie A passe à l'état logique haut alors que la sortie B reste à l'état logique bas. C'est l'instant T1...

encodeurs_optiques_bases_000b encodeurs_optiques_graphe_002a

Puis, si on continue de tourner l'axe, la sortie B passe à son tour à l'état logique haut, puis A repasse à l'état logique bas, puis B repasse à l'état logique bas. Ce qui nous donne les quatres instants T1 à T4 suivants :
T1 : A = 1 et B = 0
T2 : A = 1 et B = 1
T3 : A = 0 et B = 1
T4 : A = 0 et B = 0
On remarque que A est en avance sur B.

Rotation dans le sens anti-horaire
Il suffit de lire le diagramme dans l'autre sens...

encodeurs_optiques_bases_000c encodeurs_optiques_graphe_002b

T1 : A = 0 et B = 1
T2 : A = 1 et B = 1
T3 : A = 1 et B = 0
T4 : A = 0 et B = 0
On constate maintenant que B est en avance sur A. C'est en sachant comment cela fonctionne dans ce sens que l'on peut en déduire les faits inverses : en regardant en permanence l'état des deux sorties A et B, on en déduit que l'axe a été tourné, et avec très peu de besoin en calcul, on peut aussi en déduire dans quel sens la rotation s'est opérée. Le simple fait de regarder à un instant donné l'état logique des deux sorties A et B ne suffit cependant pas : il faut aussi avoir mémorisé l'état de ces sorties lors du précédent changement d'état, et effectuer une comparaison entre anciens et nouveaux états pour savoir dans quel ordre les choses se passent. Une façon de faire est expliquée plus en détails (avec un exemple pratique) à la page PIC - Bases - Encodeur optique

Nombres de trous et résolution
Le nombre de trous pratiqués dans le disque et par lesquels la lumière de la led peut passer pour aller jusqu'aux photodétecteurs, détermine la précision de l'encodeur. Le disque peut comporter 100 trous sur son pourtour, tout comme il peut en comporter 6000. Ce qui veut dire que le nombre d'impulsions fournies en un tour complet de l'axe (et du disque) peut varier dans d'assez grandes proportions. Les deux photos qui suivent montrent deux disques ayant des résolutions différentes : les trous sont si nombreux et si serrés sur la deuxième photo, qu'on a un peu de mal à les distinguer.

encodeur_optique_004 encodeur_optique_007

Plus le nombre de trous est élevé et plus la résolution est importante, cette dernière doit être choisie en fonction de l'application concernée. Une résolution élevée pourrait sembler préférable dans tous les cas (qui peut le plus pourrait à priori le moins), mais elle n'est pas forcement nécessaire et peut même poser certains problèmes dans des systèmes qui ne seraient pas en mesure de traiter un gros flux d'informations dans un temps très court (microcontrôleur travaillant avec une fréquence d'horloge basse, par exemple). De plus, il existe un rapport assez direct entre la résolution de l'encodeur et son prix, inutile de dépenser plus que nécessaire (les prix varient entre 5 euros et 200 euros). D'un point de vue angulaire, la résolution atteint 3,6 degrés pour un modèle 100 trous (360 / 100), et atteind 0,06 degrés pour un modèle 6000 trous (360 / 6000). Si l'encodeur optique doit être utilisé pour connaitre le positionnement d'un objet mobile (tel qu'une lunette astronomique), la résolution devra être élevée. Par contre, pour un petit montage électronique "utilitaire", un modèle faible résolution peut sans doute largement suffire.

Encodeur asymétriques et symétriques

L'encodeur vu ci-avant est de type asymétrique, les deux sorties A et B se font sur un seul fil et sont référencées par rapport à la masse. Une sortie (A ou B) peut délivrer soit un état "flottant", soit un état logique haut ou bas selon la configuration interne de l'encodeur. Il existe aussi des encodeurs de type symétriques pour lesquels les sorties A et B se font chacune sur deux fils (A et A' pour la première sortie, B et B' pour la seconde sortie). Pour ces derniers, les sorties ne peuvent délivrer que des états logiques haut ou bas, jamais flottant. C'est pourquoi on dit aussi de ce genre de sortie qu'elle correspond à une configuration de type "push-pull". Tout comme dans le domaine audio, les sorties symétrique (complémentées / différentielles) offrent une meilleur immunité au bruit et assurent une plus grande robustessse des signaux dans des environements perturbés, surtout quand les liaisons entre encodeur et circuit de traitement sont longues (voir Symétrique / asymétrique).

Encodeurs incrémentaux

Ce type d'encodeur permet uniquement de mesurer des changements de position, mais il est bien sûr possible d'en déduire vitesse et même accélération (ce que permettent aussi les autres types d'encodeurs).

Encodeur absolu

Ce type d'encodeur permet de connaitre la position d'un objet solidaire de l'axe. Il est constitué de segments opaques et de segments transparents répartis en plusieurs cercles concentriques sur la roue de l'encodeur. Le premier cercle, situé au milieu de la roue, possède un certain nombre de segments. Le cercle suivant (en allant vers le bord extérieur du disque) possède deux fois plus de segments que le premier. Le suivant (en allant toujours vers le bord extérieur du disque) en possède deux foix plus que le précédent (et donc quatre fois plus que le premier), etc. Le premier cercle (le plus proche du centre) comporte un segment transparent et un segment opaque. Le deuxième possède deux segments transparents et deux segments opaques. Le troisième cercle possède quatre segments de chaque type, etc. On se trouve en pleine représentation binaire avec le bit de poids fort situé au plus près du centre et le bit de poids faible situé le plus à la périphérie du disque. On comprendra donc qu'un disque doté de 10 cercles sera en mesure de donner un nombre relatif à sa position compris entre 0 et 1023 (2 puissance 10 positions possibles), et qu'un disque doté de 16 cercles sera en mesure de donner un nombre relatif à sa position, compris entre 0 et 65535 (2 puissance 16 positions). Bien sûr, pour que cela fonctionne, il faut un capteur photosensible par piste (cercle).

Voir aussi

PIC - Bases - Encodeur optique - Exemple avec PIC et MikroPascal
Compteur points 002 - Comptage et décomptage entre 0000 et 9999 avec PIC 16F628A et 4 afficheurs 7 segments
Alimentation ajustable 014c - Génération tension et signal PWM avec deux encodeurs optiques