Codeur rotatif incrémental

Dans les applications industrielles, il peut parfois être nécessaire de mesurer la position ou la vitesse d'un objet en rotation comme une roue ou un arbre/essieu. L'encodeur rotatif est un dispositif électromécanique qui peut être utilisé pour obtenir ces mesures.

Il existe deux types d'encodeurs rotatifs : codeurs rotatifs incrémentaux ainsi que codeurs rotatifs absolus. Dans cet article, nous examinerons codeurs rotatifs incrémentaux, leur principe de fonctionnement et leurs applications.

Qu'est-ce qu'un encodeur rotatif incrémental ?

Les codeurs incrémentaux appartiennent à la famille des encodeurs rotatifs. Ils sont utilisés pour obtenir des informations telles que :

  • Position
  • Angle
  • Vitesse rotationnelle

Les codeurs rotatifs incrémentaux se trouvent principalement dans les applications où la mesure de la vitesse/vitesse angulaire est requise. Cela se fait en comptant le nombre d'impulsions par unité de temps générées par le codeur.

Contrairement à son frère, le codeur rotatif absolu, les codeurs incrémentaux ne peuvent pas fournir d'informations lorsque l'arbre ne tourne pas. Ils peuvent uniquement fournir des informations sur les mouvement de l'arbre.

Les impulsions générées par le codeur rotatif incrémental doivent être calculées et traitées ailleurs. Il peut s'agir d'un microcontrôleur ou d'un API (Programmable Logic Controller). En utilisant le nombre d'impulsions, le contrôleur peut ensuite convertir les informations en informations telles que position, vitesse et distance.

Comment fonctionne un encodeur rotatif incrémental ?

Les codeurs rotatifs incrémentaux sont disponibles en deux configurations :

  1. Codeurs incrémentaux monocanal
  2. Encodeurs double canal (Quadrature)

Leurs fonctionnalités sont presque similaires les unes aux autres. Cependant, les encodeurs double canal nous permettent de détecter le sens de rotation qu'un encodeur simple canal ne peut pas.

Le principe de fonctionnement d'un codeur rotatif incrémental est assez simple. Le capteur se compose d'un disque fendu rotatif fixé à son arbre.

Lorsque l'arbre tourne, le disque tourne également comme indiqué sur la figure ci-dessous. Ceci est également connu sous le nom de « roue codée ».

Les fentes de la roue sont utilisées pour générer des « impulsions » chaque fois qu'une fente s'aligne avec le capteur. Les codeurs rotatifs incrémentaux utilisent des technologies telles que magnétique, optique, inductif, capacitif et laser pour générer ce train d'impulsions.

Le schéma ci-dessus illustre le fonctionnement d'un codeur rotatif incrémental optique. Une source lumineuse (LED) est placée sur le disque et le dispositif de réception (une photodiode/phototransistor) est placé dans la ligne de mire.

Lorsque le disque tourne, les fentes laissent momentanément passer la lumière. A ce moment, le faisceau lumineux atteint le récepteur et délivre un signal logique HAUT.

Lorsque le disque tourne davantage, le faisceau lumineux est obstrué et le récepteur ne reçoit pas le faisceau. Cela fait que la sortie de ce canal correspondant passe au niveau logique BAS.

Les encodeurs rotatifs incrémentaux à double canal ont deux de ces canaux nommés canaux A et B. Le placement des fentes pour le canal B est légèrement décalé par rapport aux fentes pour le canal A.

Parfois, le capteur utilise un seul ensemble de fentes et les récepteurs sont placés dans un décalage.

Cette disposition spéciale permet aux sorties A et B d'être « déphasées ».

Le microcontrôleur ou l'API peut surveiller les deux canaux pour détecter le sens de rotation.

Selon quel canal (A ou B) indique un front montant en premier, la direction peut également être détectée. Les codeurs monocanal n'ont que la sortie du canal A et ne peuvent émettre qu'un seul train d'impulsions.

Par exemple, dans le schéma ci-dessus, un front montant sur A après un front montant sur B indique que la roue tourne dans le sens inverse des aiguilles d'une montre. De même, un front montant sur B après un front montant sur A indique que la roue/l'arbre tourne dans le sens des aiguilles d'une montre.

Sur certains capteurs, il existe un troisième canal appelé « Z ». Contrairement aux deux autres canaux, il n'y a généralement qu'un seul emplacement pour ce canal. Ceci est utilisé pour générer une impulsion par tour pour des tâches comme autoguidage ainsi que vérification du nombre d'impulsions.

Encodeur incrémental ou absolu

Les codeurs incrémentaux ne peuvent fonctionner que lorsque l'arbre tourne.

Les systèmes qui utilisent des codeurs rotatifs incrémentaux doivent disposer d'un programme sophistiqué en cours d'exécution pour compter les impulsions produites par le capteur afin de déterminer la position de l'arbre. Ils ont un disque à fentes équidistantes agissant comme la roue de code.

Les codeurs absolus ont une roue de code spécialisée. Celui-ci contient un modèle de fente non uniforme, un code unique pour chaque position de l'arbre.

Pour toute position d'arbre donnée, un codeur rotatif absolu génère un code binaire unique qui décrit avec précision la position. Il conserve également la sortie même lorsqu'il est éteint puisque la roue de code elle-même contient le motif.

Les codeurs incrémentaux doivent être alimentés en permanence pour générer en permanence le train d'impulsions pour les calculs de vitesse et de distance. Cependant, les codeurs absolus peuvent être mis sous tension lorsque cela est nécessaire pour obtenir une lecture.

Du point de vue de la complexité, les codeurs incrémentaux sont plus simples que leurs homologues absolus. Par conséquent, les codeurs incrémentaux sont moins chers que les codeurs rotatifs absolus.

A quoi servent les codeurs incrémentaux ?

Les codeurs rotatifs incrémentaux trouvent leurs applications des appareils ménagers aux automobiles en passant par les applications d'automatisation industrielle.

L'une des applications les plus populaires pour la détection de position est les boutons de commande sur les équipements électroniques tels que les configurations d'autoradio. Les boutons rotatifs sont réglables en continu et ne fonctionnent que lorsque l'appareil est sous tension.

Auparavant, les souris d'ordinateur électromécaniques utilisaient également ces capteurs pour suivre la position le long des deux axes.

Dans les applications industrielles, les codeurs incrémentaux sont utilisés pour mesurer la vitesse des systèmes mécaniques. Ceci est particulièrement utile dans les systèmes de contrôle de mouvement tels que les convoyeurs de matériaux, les bras robotiques et les machines CNC.

Spécifications du codeur incrémental

Lors du choix d'un encodeur pour une application particulière, plusieurs facteurs doivent être pris en compte.

  • diamètre extérieur
    • Le diamètre extérieur du boîtier du capteur (utile lors du montage)
  • Type et diamètre de l'arbre
    • Il existe des choix pour le type d'arbre tel que l'arbre creux, l'arbre demi-creux, l'arbre creux borgne et l'alésage traversant.
    • Le diamètre doit être dans les tolérances pour être correctement couplé à l'objet. Des arbres de 20 mm, 25 mm et 30 mm sont disponibles.
  • Voie de sortie et longueur de câble
    • La position de la connexion du câble de sortie. Il existe deux configurations : côté et à l'extérieur.La configuration latérale permet la connexion d'un câble détachable sur le côté. Le type à sortie de câble a un câble fixe sortant de l'arrière du boîtier du capteur.
    • Pour les câbles fixes, les capteurs sont généralement équipés d'un câble de couleur noire 2M.
  • Tension d'alimentation
    • Indique la tension de fonctionnement maximale du capteur. Il existe des options pour les alimentations CC %v (fixe), 5-12 V, 12-24 V et 24 V (fixe).
  • Type de signal de sortie
    • A pour les codeurs à canal unique, A et B pour les codeurs à double canal (quadrature) et un Z en option pour la sortie d'impulsions d'indexation
  • Nombre d'impulsions
    • Ce paramètre décrit les valeurs d'impulsions par tour (PPR) et de compteur par tour (CPR) prises en charge par le capteur.
  • Méthode de sortie du signal
    • Le type de signal de sortie : sortie tension (V)/courant (C), sortie complémentaire (F) ou sortie ligne (L, T)

Caractéristiques électriques du codeur incrémental

  • Tension d'alimentation
    • Peut varier de 5V à 24V
  • Consommation de courant
    • Pour les types de sortie tension et courant, la consommation de courant typique est inférieure à 60 mA. Les types de pilotes peuvent consommer jusqu'à 100 mA.
  • Tension de sortie (pour le type de sortie de tension)
    • Tension de niveau ÉLEVÉ : > = 3.5 V
    • Tension de niveau BAS : <=0.5 V
  • Temps de montée et de chute
    • Décrit le temps que prend le capteur pour changer la sortie de haut en bas (chute) ou de bas en haut (montée)
    • Temps de montée typique pour le type de sortie de tension : <= 500ns
    • Temps de chute typique pour le type de sortie de tension : <= 100 ns
  • Fréquence de réponse
    • Fréquence maximale à laquelle le capteur peut commuter ses sorties
    • Tombe généralement en dessous de 300 kHz

Circuit d'encodeur rotatif incrémental

Comme mentionné précédemment, les codeurs rotatifs peuvent être connectés à des API ou à des microcontrôleurs pour mesurer la vitesse, la position, la distance et le sens de rotation d'un arbre. Ces appareils doivent être spécialement programmés pour calculer ces valeurs et prendre des décisions.

Il existe également des appareils spécialisés tels que des compteurs et des tachymètres qui peuvent effectuer ces calculs prêts à l'emploi et indiquer directement les valeurs. Jetons un coup d'œil à certains des circuits que nous pouvons construire à l'aide d'encodeurs rotatifs incrémentaux :

tachymètre auto-alimenté

Le H7ER tachymètre auto-alimenté de série par Omron, un encodeur incrémental à canal unique peut être utilisé pour configurer un tachymètre pouvant afficher le régime d'un arbre.

Les E6A2 est un codeur incrémental en quadrature de type AB avec sorties NPN à collecteur ouvert. En le connectant au H7ER, le système agit comme un tachymètre qui compte la fréquence des impulsions pour déterminer le régime de l'arbre connecté.

Compteur/décompteur à grande vitesse

Les K3NC est un compteur/décompteur à grande vitesse avec une variété de modes de sortie. Cet appareil peut être connecté à un encodeur rotatif de type AB pour former un compteur/décompteur selon le sens de rotation.

Avec cette configuration, le compteur de comptage peut être configuré pour émettre un signal pour allumer/éteindre une machine comparant le nombre d'impulsions. Il prend également en charge la communication avec un API pour les applications de contrôle de processus.

L'utilisation de ces composants prêts à l'emploi peut éliminer le besoin d'un dispositif complexe tel qu'un API là où ce n'est pas absolument nécessaire. Ceci est particulièrement utile pour les systèmes à plus petite échelle.

Pour une utilisation dans un système basé sur PLC, une carte HSC (Compteur à grande vitesse) est recommandée pour les applications à grande vitesse. La figure ci-dessous montre le raccordement d'un codeur rotatif incrémental de type collecteur ouvert PNP à une carte d'entrée HSC couplée à un automate.

Le capteur a des sorties A, B et Z et elles sont connectées à la carte HSC comme indiqué ci-dessus. La carte compteur peut être configurée pour envoyer le compteur lisant la vitesse de l'arbre du codeur à l'automate. Cette configuration réduit la surcharge de traitement dans le programme de l'automate.

Encodeur rotatif incrémental Arduino

Dans les circuits basés sur Arduino, les encodeurs rotatifs sont utilisés comme entrées dans nos programmes.

Nous pouvons les utiliser pour augmenter/diminuer la valeur d'une variable pour des tâches telles que le contrôle de la vitesse d'un moteur ou la luminosité d'une LED. Dans les applications plus avancées, les encodeurs rotatifs sont également utilisés pour naviguer dans les menus.

Le KY-040 est un module d'encodeur rotatif standard disponible pour les Arduinos. Il a le brochage suivant :

  • GND – Connexion à la terre
  • VCC – Alimentation 5V ou 3.3V
  • SW - sortie de commutateur à bouton-poussoir (0V lorsqu'il est enfoncé, 5V au repos)
  • DT – Sortie de données
  • CLK – Sortie d'horloge

Comme exemple de circuit, examinons un circuit de test où l'encodeur est connecté à un Arduino UNO. La broche SW du capteur est connectée à la broche 4, CLK à la broche 2 et DT est connectée à la broche 3 de l'Arduino.

VCC est connecté à +5V et GND est connecté à la broche GND de la carte de développement Arduino comme indiqué ci-dessous.

Code Arduino pour encodeur rotatif

Cet exemple de code a été adapté de lastminuteengineers.com. Il remplit deux fonctions principales :

  1. Attente du signal CLK (broche 2) pour changer
  2. Observez si le bouton est enfoncé (la broche 4 est LOW)

Lorsque le bouton de l'encodeur est tourné, le programme détecte le changement de ligne CLK. Il vérifie ensuite l'état de la broche DT.

Si les deux sont identiques, l'encodeur est tourné dans le sens des aiguilles d'une montre et dans le sens inverse des aiguilles d'une montre. En attendant, pour chaque détection, la variable contrerLa valeur de est également augmentée/diminuée en fonction de la direction.

Le programme vérifie également l'état du bouton de l'encodeur. S'il est enfoncé, le programme imprime « bouton enfoncé » sur le moniteur série. Il imprime également la valeur actuelle du nombre d'impulsions comptées.

// Entrées de l'encodeur rotatif
#Vous permet de définir CLK 2
#Vous permet de définir DT 3
#Vous permet de définir SW 4int compteur = 0;
int CurrentStateCLK;
int lastStateCLK ;
String currentDir ="" ;
non signé Long lastButtonPress = 0 ;annuler installation() {

// Définir les broches de l'encodeur comme entrées
pinMode(CLK,ENTRÉE);
pinMode(DT,ENTRÉE);
pinMode(SW, INPUT_PULLUP);

// Configuration du moniteur série
Serial.begin (9600);

// Lecture de l'état initial de CLK
lastStateCLK = digitalRead(CLK);
}

annuler boucle() {

// Lit l'état actuel de CLK
CurrentStateCLK = digitalRead(CLK);

// Si le dernier état et l'état actuel de CLK sont différents, alors l'impulsion s'est produite
// Réagit à 1 seul changement d'état pour éviter le double comptage
if (currentStateCLK != lastStateCLK && currentStateCLK == 1){

// Si l'état DT est différent de l'état CLK alors
// l'encodeur tourne dans le sens antihoraire donc décrémentez
if (digitalRead(DT) != currentStateCLK) {
compteur -;
currentDir = "CCW" ;
} d'autre {
// L'encodeur tourne dans le sens horaire donc incrémenter
compteur ++;
répcourant = "CW" ;
}

Serial.print("Direction : » );
Serial.print(currentDir);
Serial.print(" | Compteur : ");
Serial.println(compteur);
}

// Mémoriser le dernier état CLK
lastStateCLK = currentStateCLK ;

// Lecture de l'état du bouton
int btnState = digitalRead(SW);

//Si nous détectons un signal FAIBLE, le bouton est enfoncé
if (btnState == FAIBLE) {
//si 50ms se sont écoulés depuis la dernière impulsion LOW, cela signifie que le
//le bouton a été pressé, relâché et pressé à nouveau
if (millis() – lastButtonPress > 50) {
Serial.println("Bouton enfoncé!");
}

// Se souvenir du dernier événement d'appui sur le bouton
lastButtonPress = millis();
}

// Mettre un léger délai pour aider à dévier la lecture
délai (1);
}

Comment vérifier l'encodeur incrémental avec un multimètre

Pour dépanner un encodeur avec un multimètre, il doit être sous tension. Après la mise sous tension, réglez le multimètre sur le mode de mesure des volts CC et connectez la sonde noire au fil GND du capteur.

Tournez lentement l'axe du capteur tout en sondant les sorties A ou B du capteur.

La mesure de tension doit fluctuer entre près de 0V et VCC du capteur. Notez que l'arbre doit tourner extrêmement lentement pour permettre au multimètre de stabiliser sa lecture.

Si la mesure de tension ne change pas, basculez le multimètre en mode AC et répétez les mêmes mesures. Cette fois, tournez l'arbre plus rapidement. Si la lecture du multimètre indique une tension non nulle, on peut en conclure que l'encodeur est fonctionnel.

Cependant, ce n'est pas une méthode de dépannage précise à 100 %. Même si le multimètre affiche une lecture de tension, le capteur peut toujours mal fonctionner. Dans ce cas, la synchronisation du capteur doit être analysée. Pour de telles tâches, un oscilloscope est nécessaire.

Conclusion

Dans cet article, nous avons discuté du fonctionnement, du principe de fonctionnement et des applications des codeurs rotatifs incrémentaux.

Alors que les codeurs incrémentaux sont les plus populaires, les codeurs rotatifs absolus peuvent être avantageux dans certains cas. Sélectionnez le capteur le plus adapté à votre application en tenant compte des caractéristiques dont nous avons discuté dans cet article.

Cela améliorera non seulement les performances et la fiabilité de votre système, mais réduira également les coûts inutiles impliqués.

Facebook
Twitter
LinkedIn
Pinterest
Dernières publications

Table des matières

Envoyez-nous