Autres encodeur absolu, comment faire

  • Auteur de la discussion vibram
  • Date de début
V

vibram

Compagnon
Bonjour à tous,
j'ai commandé cet encodeur absolu.
Pourquoi absolu? car je veux etre capable apres une exctinction de la machine et eventuellement de mouvements pendant l'arret, de retrouver la position dans laquelle je suis au démarrage.

J'ai commandé ce codeur:
https://www.aliexpress.com/item/Fre...-encoder-M6A2-38F10B-5C-2-5M/32752380331.html

quelqu'un aurait deja eu affaire à cela avec un arduino ou STM32 ? ou meme autre...
C'est un signal en quadrature, OK.
Mais est-ce que je suis capable de connaitre la position au démarrage de la machine meme sans mouvement initial ? j'ai un doute...
Toute aide est bonne à prendre

Merci
 
O

osiver

Compagnon
Ce n'est pas un codeur absolu, il me semble :
Model: incremental rotary encoders, AB two phases. By rotating the grating disk and optocoupler direction which generate counting pulses.
:spamafote:
 
O

osiver

Compagnon
Mais est-ce que je suis capable de connaitre la position au démarrage de la machine
Non ! Sauf à avoir mémorisé dans une EEPROM la dernière position et à condition de ne pas bouger entre-temps. Et encore, à 1 pas près ... :???:
 
P

petit_lulu

Compagnon
salut,
au debut il est ecrit "10 bits" et juste sous la photo il est ecrit "incrmental" donc c'est quoi en fait?
d'apres la photo des connexions, on dirait un signal SCI (clock/data/chip enable).
a mon avis le codeur donne sa position sur un tour avec 10 bits de precision soit 1024 positions donc 360/1024=0.351.. ° environ mais je pense que c'est a toi de compter le nombres de tours qu'il fait et s'il n'est pas alimente .... tu perd le nombre de tour effectuer hors tension.
 
V

vibram

Compagnon
je me suis basé sur le titre, merde !
Merci Osiver, juste a temps pour annuler :wink:
je vais chercher un vrai codeur absolu..
 
T

tronix

Compagnon
Comme d'habitude, c'est le flou dans la description. Ils parlent de signaux en quadrature, et en même temps de 10bits, et on voir CS, CLK.. Donc, pour moi, c'est bien un codeur absolu. J'en ai déjà utilisé un une fois, mais j'avais fait l'interface avec un FPGA que j'avais sur la carte. En codant proprement, on peut le faire sans problème avec un processeur. Mais il va falloir mettre les mains dans le code !
Oui, c'est bien absolu, mais sur un tour. Il faut donc mémoriser la position. Rien de difficile, quand on sait faire. Trouver la solution toute faite, sur du matériel imposé, risque d'être un peu chaud.
 
S

speedjf37

Compagnon
Mais est-ce que je suis capable de connaitre la position au démarrage de la machine meme sans mouvement initial ? j'ai un doute...

Bonjour,

Effectivement pour avoir un signal en quadrature sans mouvement ?

D'après le description et le câblage ce serait un absolu sur 10bit en SPI.

On ne connait pas l'usage prévu mais on ne peut connaitre la position que sur 360° , pour plus d'infos il y a des multitours 26bit

JF
 
V

vibram

Compagnon
j'ai effectivement besoin de connaitre la position uniquement sur un tour mais l'imperatif c'est d'avoir la position des le demarrage sans remise à zero ou autre.
C'est pour cela que je cherchais un codeur absolu donc je pensais me servir avec le code de grey mais on peut pas dire qu'il y a enormement d'offre dans un budget destiné aux bricoles et non aux pros :wink:
 
M

metalux

Compagnon
hello
c'est bien un codeur incrémental! ce modèle est vendu sur bon nombre de vendeurs chinois et a tous les prix (j'ai eu le mien a 6€), rien qu'a voir le prix et l'on se dit que ce n'est surement pas un absolu..

si on veux différencier les deux au niveau fonctionnement, l'incrémental aura besoin d'un "étalonnage" c.a.d qu'il lui faudra un point de référence dès qu'on le met sous tension et a partir de là il pourra effectuer une mesure précise.

pour ce qui est de l'absolu et pour faire simple, il indique sa position sans besoin de référence, l'électronique est donc plus "chiadé" ce qui justifie son prix beaucoup plus élevé

amha il faut en trouver un d'occasion, et encore même là c'est cher :sad:
 
T

tronix

Compagnon
Le codeur absolu ne résout pas vraiment le problème car il ne donne que la position angulaire absolue du codeur, pas du montage complet. Mais la lecture peut être plus facile, le code donné en exemple en est l'illustration, c'est une simple lecture SPI. Les signaux en quadrature nécessitent un peu plus de soin si la vitesse de rotation est importante, afin de ne pas perdre de pas.
Côté sauvegarde, il va falloir réfléchir un peu. Avec une eeprom (interne ou externe), on peut vite dépasser le nombre maximal d'écritures, et l'écriture risque aussi d'être trop lente pour chercher à suivre en continu. On peut faire le choix de ne sauvegarder que chaque seconde, ou quand le codeur est stable pendant un certain temps, mais en cas de coupure intempestive, on perdra quand même la position. J'utilise des composants Microchip qui sont une eeprom couplée à une ram, le composant recopiant seul la ram en eeprom uniquement sur demande ou lors de la coupure d'alimentation du composant (une capa à côté lui suffit pour l'opération), mais on reste limité au débit i2c. Un bus spi ou parallèle ira plus vite, et on peut aussi rester sur de la ram sauvée par pile.
 
V

vibram

Compagnon
Bonjour à tous,

Je remonte le sujet car jai trouvé et recu mon codeur
Un télémecanique XCC MG6G0604
Dessus j'ai un connecteur à 24 broches. Sur ces 24, 17 sont branchées, les autres sont en l'air.

La doc qui se rapproche le plus de la ref est ici:
http://download.schneider-electric....=1391814451&p_File_Name=W915601910811_A06.pdf

Mais j'ai du mal à voir comment m'y prendre.
J'ai identifié le GND, ca OK.
J'ai 4 cables qui viennent de l'exterieur et se branchent sur les pins de la prise

Voici les couleurs que j'ai relevées:
1 ->orange
2 -> rouge
3 -> gris
4 -> bleu clair
5 -> vert
6 -> violet
7 -> bleu et blanc
8 -> vert et blanc
9 -> blanc
10 -> blanc
11 -> en l'air
12 -> en l'air
13 -> rouge (+ gros, je pense vcc)
14 -> en l'air
15 -> noir
16 -> en l'air
17 -> marron (venant de l'exterieur, non relié au codeur)
18 -> bleu (venant de l'exterieur, non relié au codeur)
19 -> en l'air
20 -> marron (venant de l'exterieur, non relié au codeur)
21 -> bleu (venant de l'exterieur, non relié au codeur)
22 -> en l'air
23 -> relié au blindage
24 -> relié au blindage

Toute aide est bonne à prendre :wink:

Merci

IMG_20180318_202546.jpg


IMG_20180318_202603.jpg


IMG_20180318_202555.jpg
 
V

vibram

Compagnon
Non c'est un codeur d occasion voici la photo

Merci pour le document je vais regarder demain matin

IMG_20180318_221929.jpg
 
V

vibram

Compagnon
Bon j'ai testé, ca fonctionne tres bien, les pins sont bien celles citées ci dessus: parfait !

Petite question subsidiaire:

J'ai tout mon circuit de commande en 24v (les electrovannes, le codeur etc).
Sauf que mon codeur sort du 24v également.
Est-ce qu'il y a un moyen simple de passer du 24v (sortie codeur) au 3.3v (entrée microcontroleur) sur chaque broche?
J'ai pensé à la résistance bien sur mais selon la valeur de l'intensité, la tension va elle aussi bouger et cela peut etre dangereux pour le microcontroleur.
Je peux utiliser un relais mais j'ai peur de la frequence si elle est trop rapide le relais ne pourra peut etre pas suivre?
J'ai aussi entendu parler des ampli op etc mais je suis peu à l'aise avec cela, je n'en ai jamais mis en oeuvre.
Existe-il une methode simple?
 
M

metalux

Compagnon
exact osiver j'ma gouré :wink:
on peu augmenter mais pas diminuer..

ou alors un 7805 et qq diodes en série, ou un pont diviseur, zener 3.3v ?
 
O

osiver

Compagnon
Ah, autant pour moi et @metalux aussi, je pense ! :P

Non, pour les signaux, ça ne marche pas !
Donc plusieurs possibilités dont celle-ci : 1 zener 20V deux résistances et un transistor NPN en émetteur commun par exemple / signal.
Faut que je regarde, il doit y avoir des circuits intégrés transposeurs de tension :eek:
 
V

vibram

Compagnon
les sorties du codeur sont ainsi:
upload_2018-3-29_15-33-29.png


j'ai toujours du mal à comprendre le PNP/NPN, je vais continuer de me renseigner
 
O

osiver

Compagnon
PNP dans ce cadre désigne de façon générique le type de transistor qui commande la sortie.
Ça signifie que lorsque la sortie est activée, elle est "reliée" au + de l'alimentation.
Inversement, lorsqu'une sortie NPN est activée, elle est "reliée" au 0V :wink:
 
V

vibram

Compagnon
PNP dans ce cadre désigne de façon générique le type de transistor qui commande la sortie.
Ça signifie que lorsque la sortie est activée, elle est "reliée" au + de l'alimentation.
Inversement, lorsqu'une sortie NPN est activée, elle est "reliée" au 0V :wink:
assez clair ...! dommage car NPN m'aurais permis de mettre du 5v directement eventuellement?
Bref, à voir ce qu'on peut trouver ... !
 
O

osiver

Compagnon
Exact !

Il y a les bons vieux MC1489 4 entrées 30V max sortie 5V, je regarde s'il y en a de plus modernes :wink:
 
C

coredump

Compagnon
Pour faire la conversion entre du 24v et du 3.3v rien de tel qu'un optocoupleur, qui est de toute façon recommandé en usage industriel.
Il n'y a que sur les montages hobby qu'on fait une entrée directe ou via un buffer/convertisseur de niveau.
 
V

vibram

Compagnon
Pour faire la conversion entre du 24v et du 3.3v rien de tel qu'un optocoupleur, qui est de toute façon recommandé en usage industriel.
Il n'y a que sur les montages hobby qu'on fait une entrée directe ou via un buffer/convertisseur de niveau.
c'est à ca que je pensais car j'en avais deja utilisé, mais je croyais que le terme anglais était mosfet mais en fait non ce ne sont pas les memes choses.
je dois meme pouvoir en trouver un seul avec toutes les entrées/sorties qu'il me faut je pense
Surotut que le MCU me sort du 3.3v donc je n'ai plus qu'a brancher l'ensemble correctement
 
Haut