encodeur rotatif sur visu

  • Auteur de la discussion bbeeuuhh
  • Date de début
bbeeuuhh

bbeeuuhh

Ouvrier
Salut à tous, est t'il possible de passer la lecture de mon encodeur d'un moteur pas à pas sur ma visu ? comment testé les fils? est il passif ou il faut l'alimenter en 5v? Il y a 5 fils sur l'encodeur, rouge blanc noir vert et bleu des couleur standard ?

scancon TYPE 2r20

Des idées? merci !

1632427238434.png
1632427269054.png
1632427287164.png
 
Dernière édition:
Z

Z160CDV12

Nouveau
Bonjour

Electriquement parlant, je ne sais pas.

Mais mecaniquement, ça me semble une idée risquée. Le codeur ne verra pas les jeux et usures entre moteur et table.

Comme les usures se concentrent au milieu de la course, les indication données sur les extrêmes seront faussées.
 
bbeeuuhh

bbeeuuhh

Ouvrier
Je n'ai pas précisé pour quoi c'était.. ce moteur pas à pas sert à régler la butée de vérin d'une presse plieuse.
J'ai besoin de transmettre une valeur sur l'écran, même si ça ne communique pas les mm, du moment que j'ai une valeur, ce sera bon pour affiné les réglage de la descente sachant que ce sera toujours la même .
 
M

metalux

Compagnon
Bonjour
je dirais que oui tu peux adapter un codeur incrémental sur une visu ( un codeur absolu c'est autre chose..)
sachant qu'il génère deux signaux carré A et B il serait (relativement ) facile de l'adapter sur une visu classique adaptant le protocole TTL a condition que cette visu soit paramétrable.
Un codeur necessite bien une alimentation vu qu'il faut y alimenter les photodiodes a l'intérieur (généralement du 5v), quand a la couleur des fils c'est au bon vouloir du fabricant.

mais pourquoi ne pas partir sur un module tout fait a bas prix comme celui ci?
 
bbeeuuhh

bbeeuuhh

Ouvrier
Merci, je vais essayé de trouver la correspondance des fils, et si c'est trop compliqué, je prendre un encodeur + afficheur que je monterai sur mon moteur....
 
D

Doctor_itchy

Compagnon
5 fil donc GND qui est la masse/0V , +5V l'alim , signal A , signal B et signal I (le i c'est l'index , ce n'est pas obligatoire )

electriquement ça marcheras , par contre il faut savoir que le codeur a une certaine résolution par tour , qui peu etre 1024 pulse tour , donc si ta visu n'est pas programable ou que tu ne peu avoir que des résolution type 1 , 5 ,10 ,20µm tu n'auras jamais une valeur réaliste du déplacement (sans parler du pas de la vis qui devras etre en corrélation avec tout ça , donc a moins de passer par un "calculateur" style un arduino , le programmer pour faire le calcul differentiel entre la résolution de l'encodeur et le pas de la vis , pour avoir une valeur réel :) sinon tu auras par exemple une mesure de 3.8mm lue pour un déplacement de 1mm (c'est un exemple mais c'est le genre de valeur que tu auras :wink: ) donc vérifie déja le normbre de pulse par tour , vois avec le pas de la vis ce que donne un tour en mm , et vois si sur l'afficheur ça correspond , et un décalage de quelque pulse tour , ne donne pas grand chose sur un tour mais au bout de la vis tu peu avoir un décalage de plusieurs mm voir centimetre , perso il vaut mieux acheté une regle de visu adaptée a ta visu ça ne coute pas grand chose et tu gagneras du temps :wink: le codeur c'est pour du servo avec drivers programmable en fonction du codeur :) , ou en usage cnc pour une broche ou la aussi on peu programmer le tout :wink:
 
fauxjetons

fauxjetons

Compagnon
bbeeuuhh

bbeeuuhh

Ouvrier
5 fil donc GND qui est la masse/0V , +5V l'alim , signal A , signal B et signal I (le i c'est l'index , ce n'est pas obligatoire )

electriquement ça marcheras , par contre il faut savoir que le codeur a une certaine résolution par tour , qui peu etre 1024 pulse tour , donc si ta visu n'est pas programable ou que tu ne peu avoir que des résolution type 1 , 5 ,10 ,20µm tu n'auras jamais une valeur réaliste du déplacement (sans parler du pas de la vis qui devras etre en corrélation avec tout ça , donc a moins de passer par un "calculateur" style un arduino , le programmer pour faire le calcul differentiel entre la résolution de l'encodeur et le pas de la vis , pour avoir une valeur réel :) sinon tu auras par exemple une mesure de 3.8mm lue pour un déplacement de 1mm (c'est un exemple mais c'est le genre de valeur que tu auras :wink: ) donc vérifie déja le normbre de pulse par tour , vois avec le pas de la vis ce que donne un tour en mm , et vois si sur l'afficheur ça correspond , et un décalage de quelque pulse tour , ne donne pas grand chose sur un tour mais au bout de la vis tu peu avoir un décalage de plusieurs mm voir centimetre , perso il vaut mieux acheté une regle de visu adaptée a ta visu ça ne coute pas grand chose et tu gagneras du temps :wink: le codeur c'est pour du servo avec drivers programmable en fonction du codeur :) , ou en usage cnc pour une broche ou la aussi on peu programmer le tout :wink:
Je n'est pas besoin d'une valeur réaliste, mais je crois que je peux adapter un encodeur rotatif sur ma visu:



Ce que je n'arrive pas a faire, c'est le repérage des fils qui sorte du l'encodeur... j'ai envoyé un mail au fabriquant mais pas de retour.. j'ai essayé plusieurs combinaisons mais sans succès
 
D

Doctor_itchy

Compagnon
tu doit reperé la masse ( facile ) et le positif , apres tu doit avec une led et sa resistance pour une tension de 5V tester les autre fil et tourner l'encodeur :) (tester avec led vers la masse et si rien avec led au 5V (logique inversée ou pas )

mais a quoi sert d'avoir une valeur si elle n'est pas réaliste ?? tu ne pourra t'y fier !
 
fauxjetons

fauxjetons

Compagnon
salut
ble il vas te servir a quoi ton afficheur numerique
il est pas fait pour un encodeur de Code électronique à affichage numérique
il te faut un montage pour que ca fonctionne
le miens j ai brancher les fils
comme indiquer sur la photo écris noir sur blanc
1632657214538.png

a plus
 
bbeeuuhh

bbeeuuhh

Ouvrier
Hello! J'ai réussi à alimenter l'encodeur et essayé plusieurs combinaison de fils, le lecteur oscille entre 2 valeurs( par exemple entre 15.45 et 16). J'ai préalablement configuré le lecteur pour l'encodeur... Je pense donc commander un encodeur neuf, mais je demande lequel prendre... voici la configue de mon lecteur:

1632779791731.png
https://fr.aliexpress.com/item/10000070294334.html


et je pensait prendre cet encodeur, (dimentions identique au miens) mais il y a plusieur modèle:


Sachant que le mien avait une résolution de 20ppr . Dans le menu du lecteur, c'est assez simple de rentré les données, donc si je prend un 100ppr c'est ok..
 
G

Geek&Mill

Nouveau
Je l'ai fait... C'est du boulot :wink:

Comme je l'expliquais ici, le but était de lire les positions des règles de la DRO de mon tour. Ensuite, je programme des butées électroniques qui lancent un freinage pneumatique (j'ai expliqué ici : https://www.usinages.com/threads/commander-un-circuit-dair-comprime.148123/#post-1894018).

Comme il a été dit ici par certains, les règles des DRO (tout comme un codeur incrémental tournant) utilisent des signaux en quadrature de phase A B.
J'ai en projet de mettre un codeur incrémental sur la broche de mon tour afin de connaitre la vitesse de rotation (et la position).
Connaitre la position de la broche pour numériser un tour est important (surtout pour faire du filetage). Il faut asservir l'avance à la vitesse de rotation du mandrin.
S'il y a une résistance et que le mandrin est légèrement ralenti ponctuellement, il faut que la vis à bille qui bouge le trainard adapte dynamiquement son avance. Pour cela, on va agir sur le moteur PAP... C'est un système dynamique...

Bref, c'est un autre sujet.

Ici, ce que je peux dire c'est qu'il s'agisse d'un règle linéaire de DRO ou d'un codeur rotatif, c'est la même chose... c'est un signal en quadrature de phase A B.

Et tout le problème, c'est la fréquence de ce signal.

Lors de mes 1er essais, j'ai essayé d'aquérir ce signal avec des microcontroleurs...
Il faut savoir qui si le chariot se déplace vite, la règle est précise à 0.5 micron.... Je ne vais pas faire les calculs ici mais pour chaque 0.5 micron de déplacement, on a un impulsion sur le signal AB... Aussi, si on se déplace par exemple de 20 cm en 1 seconde, ca fait un grand nombre d'impulsion très rapidement.
Par exemple, si on tourne la manivelle du trainard du tour à toute vitesse....

Ce que j'ai pu voir, c'est que les entrées des microcontroleurs n'étaient pas assez rapide pour lire toute les impulsions !!
Donc, on perdait des impulsions !! et la position était fausse !

Les règles des DRO fonctionnent jusqu'à 5Mhz... (c'est marqué sur le boitier de la DRO et aussi donné par le fabriquant de la règle dans la doc)

Aussi, il faut utiliser des compteurs électronique.
J'ai essayé avec des circuits electronique ASIC dédié (j'ai plus la référence en tête mais pourrai la retrouver si besoin mais c'est des compteurs spéciaux pour le signal AB en quadradure de phase)....
Les bestioles coutent 5 USD pièce et il en faut au moins 4 par règle... (Ca se branche en cascade pour avoir plus de bits de comptage). Plus la règle est longue (et précise), plus il faut de circuits...

Finalement, ces compteurs, c'était la galère. Je suis alors passé sur un CPLD altera max II.
C'est une sorte de FPGA donc c'est de l'électronique programmable.

Ainsi, j'ai un bus 24 bits qui donne la position des règles. Ce bus 24 bits est ensuite lu par un microcontroleur.... Et le microcontroleur affiche la position sur un ordi...

Tout ça pour dire que c'est la galère et s'il faut retenir un truc de mon post, c'est que la fréquence est un élément essentiel ici... J'avais essayé aussi avec un microcontroleur STM32 cortex M4 en mode DMA (Direct Memory Access).... On arrive à proche de sa limite mais ça devrait être possible... (enfin, sauf pour les grand coup de trainard lorsque le tourneur est bien chaud...)

En tout cas avec le CPLD, je suis capable de lire à 40Mhz.
Pour le codeur rotatif d'une broche de tour qui tourne à 5000 tours/minutes soit 80 tours secondes... ca a l'air de donner 30 kHz si on considère 360 signaux par tour...
Quel est l'angle du capteur ?
En tout cas, 30kHz, ca a l'air bien moindre qu'une règle linéaire de DRO...
 
Dernière édition:
G

Geek&Mill

Nouveau
"Salut à tous, est t'il possible de passer la lecture de mon encodeur d'un moteur pas à pas sur ma visu ? comment testé les fils? est il passif ou il faut l'alimenter en 5v? Il y a 5 fils sur l'encodeur, rouge blanc noir vert et bleu des couleur standard ?"
=> je répond quand même à cette question...

"comment testé les fils? "
=> Avec un oscilloscope.
Si tu branche les fils de la règles linéaire (ou du codeur incrémental rotatif), tu pourras voir le signal en quadrature de phase AB
Je t'ai cherché un image pour voir à quoi ça ressemble :

Je ne connais pas ton codeur incrémental mais je pense qu'il faut l'alimenter. Voir le datasheet du fabricant.

Ensuite, tu ne peux pas tirer de courant sur les fils A et B. C'est genre 5 mA maxi...
J'ai utilisé un optocoupleur et rien que le courant que tire l'optocoupleur, c'était déjà limite.
Il faut un transistor MOSFET de commande (conso => 1mA ou moins).
Attention à bien choisir l'optocoupleur ou le MOSFET en fonction de :
--> du courant consommé par la led IR de l'optocoupleur
--> le temps de commutation

Comme je l'expliquais, avec des règles linéaire de DRO, ça pulse un max et n'importe quel optocoupleur n'arrive pas à suivre... J'ai choisi celui que je voulais avec soin... Il sont rares les rapides :wink: Ici, c'est une ferrari qu'il te faut.

Si ta dernière question est de savoir si tu peux brancher directement un ton moteur PAP sur le codeur, et bien non, c'est impossible !
Et ça n'a pas de sens !
Il faut un système électronique d'interface pour :
1) acquérir la position / vitesse de rotation de la source via le codeur incrémental rotatif
2) calculer une vitesse de sortie de ton moteur PAP
3) générer les impulsions pour le moteur PAP
Pour ce dernier point il faut un driver de moteur PAP.

Voici donc le système :

Codeur incrémental (ou règle linéaire de DRO) => Interface électronique (optocoupleur/MOSET) ==> acquisition du signal A B => décodage du signal AB (calcul de la position ; de l'angle et de la fréquence de rotation) => calcul de fréquence de rotation / postion de ton moteur PAP (ceci est fait par un microcontroleur avec un programme informatique) => interface électronique de commande du moteur PAP (driver) => commande de puissance du moteur PAP (transistors MOSFET de puissance qui alimente les bobines du moteurs en pas, en demi pas / pont en H éventuellement)

Donc, tu vois bien qu'entre le codeur incrémental et le moteur, il y a pas mal de truc à mettre !

Le décodage du signal AB est ce qui est fait par les puces électronique compteurs ASIC dont je parlais dans mon post ci-dessus.
Dans mon cas, ce décodage est fait à l'intérieur du CPLD altera max II. Il y a environ 200 circuits électroniques programmé en VHDL.
A la sortie du CPLD, j'ai un bus 24 bits.
Ce bus donne en binaire, le nombre d'impulsions comptées et décomptées sur la règle linéaire de la DRO.
Par exemple si le CPlD a compté 145987214 impulsions, il donnera en sortie sur son bus 24 bits => 0b1000101100111001011010001110
145987214 impulsions à raison de 0.5 micron par impulsion, ça fait 72,993607 mètre depuis le 0 sur la règle...
Bref, l'exemple est un peu exagéré car personne n'a une règle de 72 mètre... mais le principe est là!

Le CPLD fait donc le comptage et décodage et donne la position absolue sur son bus...
 
Dernière édition:
G

Geek&Mill

Nouveau
D'ailleurs puisqu'on parle de moteur PAP et juste pour préciser le même application au niveau technique qui existe en sens inverse :
Il s'agit de boucle de positionnement fermée (closed loop).



C'est l'inverse de ce que tu veux faire... Ici, on donne la position au moteur PAP mais il éprouvera peut être de la résistance quand il tournera...
Cette résistance est normale car en fonction de la tâche qu'on demandera au moteur, il faudra qu'il "force" plus ou moins (et qu'il consomme plus d'énergie).
Par exemple, si le moteur fait tourner une vis à bille, la force dynamique n'est pas la même que pour un démarrage à l'arrêt. De même, si on est en train d'usiner, l'outil sur la pièce va créer un force qui s'opposera au mouvement de la vis à bille et du moteur PAP...
Bref, à grande vitesse, cette résistance causera du glissement. Ainsi, le moteur PAP sautera des pas... (et on pourra constater des erreurs de positionnement, ou des pièces hors cotes)

C'est pour ça qu'il existe des boucles fermée avec des codeurs rotatifs intégrés au moteur. C'est un moteur avec 2 axes et à l'arrière, il y a un codeur.

Voici ceux que j'ai acheté par exemple : https://www.omc-stepperonline.com/n...4ozin-encoder-1000cpr-34hs46-5004d-e1000.html

Je les utilise pour numériser ma fraiseuse.

Ici, le capteur est utilisé pour vérifier que le moteur est bien dans la position demandée mais il y a un asservissement électronique à l'intérieur qui adapte aussi l'intensité sur les bobines du moteur pap.
Si le moteur PAP tourne sans résistance, on limite son courant afin d'éviter que les bobines ne chauffent.
En revanche, si le moteur PAP éprouve des difficultés à se positionner, on lui envoie plus de courant.

C'est une adaptation dynamique du couple du moteur en fonction du couple résistant ! C'est vraiment super !

C'est exactement ce que fait un être humain quand il conduit une voiture. Je ne parle pas du changement de vitesse sur la boite mais simplement du fait que le conducteur va doser son pied sur la pédale d'accélération afin de se maintenir à une vitesse constante, selon que la voiture monte ou descend une montagne...
Le conducteur veut rester à la même vitesse... Pour cela, il contrôle la pédale d'accélérateur... Ensuite, les injecteurs vont envoyer plus de carburant dans le moteur pour qu'il produise plus de couple afin de compenser la gravité (quand on monte une montagne).


Bref, c'était pour dire que si tu branche le codeur sur un axe qui est lui même bougé par le moteur PAP, tu as un boucle fermé.
S'il y a une démultiplication entre l'axe du moteur PAP et l'axe du codeur (tain d'engrenages, poulie, boite de vitesse... comme sur un tour à métaux par exemple), alors il faut que l'électronique prenne en compte le coefficient de réduction et l'applique...
C'est très simple à faire dans le microcontroleur. C'est ainsi que je compte numériser la vis mère de mon tour...
Si on doit avancer de 0,04mm/tour... l'électronique applique ce coef entre l'axe du moteur PAP et l'axe du codeur rotatif !
(et dans l'exemple que je donne, il y aura bien 2 codeurs incrémentaux : un sur la broche du tour ; et celui du moteur PAP qui controle la vis mère...)

Screenshot from 2021-12-16 07-04-56.png
 

Sujets similaires

den's 12
Réponses
7
Affichages
537
den's 12
den's 12
G
Réponses
15
Affichages
20 135
jpbbricole
jpbbricole
Polskleforgeron
Réponses
11
Affichages
714
Dombes69
D
S
Réponses
2
Affichages
967
STUB37
S
M
Réponses
15
Affichages
878
Mecajay
M
Haut