Les Codeurs
Un codeur est un dispositif de mesure de position donnant une information numérique.
- Codeur linéaire : mesure de position linéaire (distance)
- Codeur rotatif : mesure de position angulaire (angle)
Ils sont constitués de :
- une bande ou un disque doté de « zones détectables »,
- un dispositif de détection de ces zones,
- un circuit de conversion en valeur numérique.
Les technologies les plus courantes pour la détection sont :
- Barrière infrarouge ↔ Zones opaques/transparente
- Détecteur infrarouge ↔ Zones réfléchissantes/mates
- Capteur à effet hall ↔ Aimants
- Contact électrique ↔ Zones conductrices/isolantes
- …
Codeur rotatif optique
Un codeur rotatif optique est constitué :
- d’un disque comportant des zones opaques et transparentes,
- d’une LED infrarouge qui émet un signal lumineux,
- d’un récepteur infrarouge, placé de l’autre coté du disque :
- reçoit le signal de l’émetteur lorsque la partie transparente est entre eux :
→ information 1. - ne reçoit pas le signal lorsque la partie opaque est entre eux :
→ information 0.
- reçoit le signal de l’émetteur lorsque la partie transparente est entre eux :
Codeur absolu
Soit un disque de codeur rotatif optique ne comportant qu’une seule zone opaque sur une unique piste :
Code binaire naturel
Le disque suivant possède cette fois deux pistes A et B (et deux couples émetteur/récepteur IR), avec des parties transparentes positionnées de telle sorte que les récepteurs soient à l’état haut lorsqu’une zone transparente les séparent de leur émetteur (piste rouge = zone opaque) :
Ce type de codage s’appelle le code binaire naturel : on compte de 00 à 11 « naturellement ».
Mais l’utilisation du code binaire naturel peut entraîner des erreurs…
Supposons que le disque comporte un petit défaut (inévitable !) à la position 180°.
On souhaite arrêter le mouvement après un tour complet du moteur (c’est à dire lorsque l’information codeur redevient 00)
Ici, les 2 barrières IR (composées de 2 LED et 2 récepteurs) sont physiquement indépendantes.
Code Gray
Le code Gray (ou code binaire réfléchi) consiste en une répartition différente des 0 et des 1 sur les pistes, de telle sorte que jamais aucunes commutations (passage de 0 à 1 ou de 1 à 0) ne doivent être simultanées.
Avantages et inconvénients d’un codeur absolu
Persistance de l’information : Le principal avantage du codeur absolu est que même après une coupure d’alimentation, le codeur indique toujours sa position ABSOLUE.
Étendue de la mesure : Le principal inconvénient est que dans le cas d’un unique disque, la position ne peut être mesurée que sur 1 tour seulement. (on peut néanmoins réaliser des codeur absolu multi-tour en incorporant un réducteur entre l’arbre et le disque, mais au détriment de la résolution !)
Précision de la mesure/Prix : Un autre inconvénient, c’est qu’il faut de nombreuses pistes (et donc beaucoup de couples émetteur/récepteur IR !) pour obtenir une bonne précision, ce qui rend ce type de capteur plutôt onéreux.
Codeur incrémental
Le principe du codeur incrémental est basé sur le comptage des impulsions délivrées par le détecteur.
Ceci permet de palier l’inconvénient de l’étendue de la mesure.
En revanche, il n’y a plus persistance de l’information de position : en cas de coupure de courant, l’information est perdue !
Selon le type de mouvement, les « zones détectables » du codeur se trouvent régulièrement réparties …
- … sur un disque ou un cylindre : mouvement de rotation
- … sur une bande : mouvement de translation
Le pas du codeur est déterminé par la géométrie du support en mouvement.
Supposons un disque de codeur optique ne possédant qu’une seule piste de 1 point :
Le disque tourne en continu, sans changer de sens.
Codeur incrémental simple voie
Sur un codeur optique, le disque n’est pas pourvu d’une seule fenêtre mais d’une succession de parties opaques et transparentes sur tout son pourtour : on parle de codeur à n points.
Pour compter les impulsions, il suffit d’incrémenter un compteur à chaque front descendant du signal fourni par le codeur.
Avec le même codeur, on peut augmenter la résolution du système : il suffit de prendre en compte non plus une impulsion entière, mais une demi-impulsion.
→ comptage des fronts montants et des fronts descendants ).
l’inconvénient d’un tel codeur est qu’il est impossible de savoir dans quel sens tourne le codeur …
Codeur incrémental double voie
Pour connaître le sens de rotation, il suffit d’ajouter une 2ème barrière IR, de sorte d’obtenir un signal décalé d’un quart de période par rapport au 1er signal.
Ceci peut être obtenu :
- Soit en décalant les 2 barrières IR,
- Soit en rajoutant une piste décalée.
Voir aussi un article détaillé sur les codeurs incrémentaux
Exercices