Fonction Acquérir – Les codeurs

1) Définition & rôles

Un codeur mesure un angle ou une position (et indirectement la vitesse), en fournissant soit des impulsions (incrémental), soit un mot numérique absolu (absolu).

  • Incrémental : sorties A, B (quadrature 90° électriques) et index Z (1 impulsion par tour). Comptage ↑/↓ selon l’ordre A→B.
  • Absolu : mot code Gray/binaire délivré en parallèle ou série (SSI, SPI, I²C) ⇒ angle direct sans remise à zéro.

2) Grandeurs & relations utiles

  • Résolution angulaire : pour un codeur \(N\) impulsions/cycle (CPR), en x1/x2/x4 : \[ N_\text{eff}=\{N,\ 2N,\ 4N\},\quad \Delta\theta=\frac{360^\circ}{N_\text{eff}} \]
  • Vitesse (méthode fréquence) : \(\;f_A = \dfrac{N_\text{eff}}{60}\,n\) ⇒ \(n=\dfrac{60\,f_A}{N_\text{eff}}\).
  • Vitesse (méthode période) : \(\;T = 1/f_A\) ⇒ \(n=\dfrac{60}{N_\text{eff}\,T}\).
  • Absolu \(n\) bits : \(2^n\) pas/tour, \(\Delta\theta=360^\circ/2^n\).
Pour les vitesses très faibles, la mesure période est plus fine. À haute vitesse, la mesure fréquence est plus stable.

3) Animation — Disque incrémental A/B/Z

A B Z
Pistes A/B en quadrature (90° électriques). Impulsion Z par tour pour origine. Le comptage dépend du sens (ordre A puis B ou inverse).

4) Simulateur A — Résolution & compte utile

\(N_\text{eff}\) (counts/tour)\(\Delta\theta\) (°/count)Résolution au sortie (°/count)
Avec un réducteur \(i\) (moteur→sortie), chaque count représente \(\Delta\theta/i\) sur l’arbre de sortie.

5) Simulateur B — Mesure de vitesse (période & fréquence)

\(N_\text{eff}\)\(f_A\) attendu (Hz)Résol. période (rpm/compteur)Résol. fréquence (rpm)Zone conseillée
Basse vitesse ⇒ méthode période. Haute vitesse ⇒ fréquence (fenêtre courte pour réactivité).

6) Codeurs absolus (Gray, SSI, SPI)

  • n bits ⇒ \(2^n\) positions/tour ; en code Gray, 1 seul bit change par pas ⇒ robuste aux transitions.
  • SSI (Synchronous Serial Interface) : trame synchrone MSB→LSB, horloge maître ; débit \(D = f_{clk} / \text{bit\_par\_trame}\).
  • Multi-tours : addition d’un compteur d’axes (mécanique ou magnétique).
Pas/tour \(2^n\)\(\Delta\theta\) (°)Trame (bits)Débit max (trames/s)
En SPI/I²C « capteurs magnétiques » (AS5048, etc.), on lit l’angle absolu directement avec CRC et diagnostics.

7) Bonnes pratiques & interfaces

PointRecommandation
LiaisonUtiliser line-driver (RS-422/485 différentiel) pour A/B/Z longue distance
BlindageCâble torsadé blindé, masse d’un seul côté (éviter boucles)
AlimRégulateur propre + découplage local 100 nF + 10 µF
DébounceSeuils de Schmitt/inverseurs, filtrage numérique anti-rebonds si codeur mécanique
RéglageCalage mécanique de l’index Z avec le zéro système (homing)

8) Exercices (12) + solutions

1 — Résolution x4

CPR=500. En x4, \(\Delta\theta\) ?

\(N_\text{eff}=2000\) ⇒ \(\Delta\theta=360/2000=0.18^\circ\).

2 — Vitesse par fréquence

On mesure \(f_A=2.5\) kHz en x2 avec CPR=1000. \(n\) ?

\(N_\text{eff}=2000\). \(n=60 f_A/N_\text{eff}=60·2500/2000=75\) tr/min.

3 — Vitesse par période

En x4 CPR=2048, période moyenne \(T=200\,\mu s\). \(n\) ?

\(n=60/(N_\text{eff}T)=60/(8192·2e-4)=36.6\) tr/min.

4 — Absolu 12 bits

\(\Delta\theta\) pour 12 bits ?

\(360/4096=0.0879^\circ\).

5 — Fenêtre fréquence

Fenêtre \(T_w=100\) ms, \(N_\text{eff}=4000\), \(n=600\) tr/min ⇒ pas d’impulsions comptées ?

\(f_A=N_\text{eff}n/60=4000·600/60=40\) kHz ⇒ en 0.1 s : 4000 counts.

6 — SSI débit

n=14, m=12, overhead 4, fclk=1 MHz ⇒ trames/s ?

Bits=30 ⇒ 1e6/30 ≈ 33.3 ktrames/s.

7 — Réducteur

CPR=500 x4, réducteur i=20. Résolution à la sortie ?

\(N_\text{eff}=2000\). \(\Delta\theta_{sortie}=360/(2000·20)=0.009^\circ\).

8 — Sens

Quel ordre de fronts indique +1 en comptage ?

Si A mène B (A monte, B=0) ⇒ sens + (convention).

9 — Bruit

Comment fiabiliser A/B sur 10 m ?

Line-driver différentiel, blindage, terminaisons, seuils Schmitt.

10 — Démarrage lent

Pourquoi la méthode période est-elle meilleure à 1 rpm ?

Les impulsions sont rares ⇒ compter des périodes longues donne une meilleure résolution relative.

11 — Gray

Avantage du Gray vs binaire pur ?

1 bit change à la fois ⇒ réduit lectures ambiguës lors des transitions.

12 — Index Z

Utilité de Z ?

Référencer l’origine (homing), vérifier intégrité comptage.

9) Récapitulatif

  • Incrémental : A/B/Z, x1/x2/x4 ⇒ \(N_\text{eff}\) & \(\Delta\theta\).
  • Vitesse : fréquence (rapide) ou période (lent).
  • Absolu : \(2^n\) pas, Gray/SSI/SPI ; attention au débit utile.

Fonction Acquérir — Codeurs — © neobac