Affichage Codeur Incrémental

Suite à une idée de Chistophe F5HRS, j’ai décidé d’acheter une petite visu pour codeur optique incrémental. Ce petit module acheté moins de 10 euros frais de port compris sur la baie possède 5 digits.

Première étape mise sous tension pas de soucis. Je récupère un codeur optique, un super Codéchamp étanche, blindé… Ce n’est qu’un 500 points par tour. Je voulais faire un multiplicateur 4 quadrant afin de le transformer en 2000 points mais cette visu promet de gérer le multi tour. En effet, on est censé pouvoir faire un RAZ et dire combien on veut afficher pour un nombre d’impulsions donné. Mon codeur étant sous 5 Volts, je décide par sécurité de tout alimenter en 5 V en passant par un buck qui me transformera le 5V en 12V pour l’afficheur. Je branche le codeur, je vérifie au scope que sur VA et VB j’ai bien mes signaux déphasés. Tout est ok. Je raccorde l’afficheur au +12 du buck. Le GND du buck, de l’afficheur, du codeur et de l’alimentation, le + 5V sur le codeur et sur le buck puis le +12V du buck sur l’afficheur. Les sorties VA et VB du codeur sur les entrées INA et INB de l’afficheur et bingo quand je fais un tour j’ai bien 500  sur le compteur. Si je fais deux tours j’ai 1000. Bon c’est bien mais si j’ai 14.42 tours… Dans la foulée, je vérifie que de mettre le fil RST à la masse me met bien le compteur à 0.

Je contacte F6DPH qui me dit que c’était prévu dans le mail de Christophe. M’aurai-ton mentis à l’issus de mon plein gré, j’enquête, regardes sur la baie les produits « concurrents » ils ont des boutons poussoir pour configurer. Philippe me dit as-tu ouvert le boitier, damned je suis doublé!! J’ouvre le boitier et sur l’arrière deux minuscules boutons poussoir… Effectivement un sélectionne le digit à modifier et l’autre incrémente sa valeur. Bon après quelques tâtonnements pour savoir qui fait quoi je transforme mon codeur 500 points pour un tour avec affichage de 500 pour un affichage de 36000 pour 20 tours du codeur.

20150208_15381820150208_153913

On voit bien sur la photo de l’arrière les deux petits boutons poussoir (situés de chaque côté du quartz en bas du print sur la photo)  pour gérer l’affichage. Si on se plante on peut tout remettre à zéros, il suffit une fois qu’on a sélectionné le digit qui ne va pas bien de le mettre à zéro. Le côté sympathique c’est qu’avec un bête laser on peut vérifier la précision aussi bien en AZ qu’EL. Perso j’utilise un laser de niveau, avec une mire (photo suivante) placée à 1o mètres on peut facilement vérifier du 0.01°. La photo n’est pas excellente mais on voit les traits noir verticaux, entre deux traits (avec ma distance) on a 1 degré, entre le trait laser et le trait noir 0.1°, je peux évaluer mieux que 0.03°….

20150208_161229Après enquête, il y a deux types de compteur toujours avec deux boutons poussoir. Dans le premier cas, après avoir sélectionner le bon digit en rentre la valeur de multiplication. On démarre de zéros, on fait 360° du rotor et on lit la valeur (exemple 3600) on voit que l’on a un rapport de 10 donc on rentre cette valeur. Dans l’autre cas on lit la valeur après avoir fait un tour du rotor (exemple 36475) et on rentre 36000. Pour vérifier la précision je monte un laser sur le codeur et place une mire papier. Là le trait laser vertical par rapport au très noir est à 1 cm ce qui me donne 0.1 degré…. pour 1 cm (petit calcul de trigonométrie simple…), ce n’est pas idiot car, quand je tourne le codeur (il est configuration 20 tours pour afficher 360°), il affiche bien 0.1°. Quand de 350.78 à 350.82 j’ai 0.3 mm donc vus la distance et que je suis en 20 tours j’ai bien 0.03°…. Cool. En plus il a bien tenus compte du facteur de multiplication car 20* 500 fait 10000, hors l’affichage passe bien de 3/100 en 3/100…(les puristes diront 3.6/100).

Afficher du 3/100 de degré c’est cool. Quel dommage de ne pas avoir de sortie RS ou PC……

L’ENORME avantage de ce compteur est son prix, sa facilité de mise en place, et SURTOUT si on coupe le courant et que l’on remet sous tension il a gardé la dernière valeur de position. Si on n’a pas tourné le rotor entre temps, on a presque un absolu….

Encore Merci à Christophe de cette EXCELLENTE idée.

Attention il n’accepte pas des codeurs ayant des sorties sinusoïdales…. Il faut du « carré » de 3 Volts à 12 Volts.

Attention: pour la sortie des datas (sauf pour les codeurs à bus de terrain, spi ….) on a VA, VB et certains ont TZ. il y a les sorties TTL, là aucun soucis .

Il y a les sorties « open collector », vus la vitesse de transition des signaux, je déconseilles fortement l’utilisation de transistor pour « transmettre les signaux », il y a des composants spécifiques pour cela…. Les compteurs utilisent les fronts montants (pour certains descendants) pour donner la valeur de l’angle et le SENS.  C’est le déphasage qui est pris en compte etc… Une simple résistance de pull up (mettre une résistance entre la sortie VA et VB et le + 5V (si c’est un codeur 5V) et relier la sortie codeur directement à l’entrée compteur ) suffit sinon comptage bizarre….

Astuce: si on a pas beaucoup de tour et que l’on a un codeur de faible résolution (style codeur monté directement sur l’axe de rotation) il existe des multiplicateurs 4 quadrants ainsi vous transformer votre codeur 600 en codeur 2400 points.

Autre astuce si on a pas besoins d’utiliser la fonction multitour et que votre codeur est installé directement sur l’axe de rotation et qu’il a une sortie TZ, si vous reliez celle ci à l’entrée RAZ, votre compteur repassera obligatoirement à 0° pour le zéro de votre positionneur (si vous avez mis le codeur avec sont TZ à la position 0° de votre positionneur).

Bonne bidouille