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\).
3) Animation — Disque incrémental A/B/Z
4) Simulateur A — Résolution & compte utile
| \(N_\text{eff}\) (counts/tour) | \(\Delta\theta\) (°/count) | Résolution au sortie (°/count) |
|---|---|---|
| — | — | — |
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 |
|---|---|---|---|---|
| — | — | — | — | — |
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) |
|---|---|---|---|
| — | — | — | — |
7) Bonnes pratiques & interfaces
| Point | Recommandation |
|---|---|
| Liaison | Utiliser line-driver (RS-422/485 différentiel) pour A/B/Z longue distance |
| Blindage | Câble torsadé blindé, masse d’un seul côté (éviter boucles) |
| Alim | Régulateur propre + découplage local 100 nF + 10 µF |
| Débounce | Seuils de Schmitt/inverseurs, filtrage numérique anti-rebonds si codeur mécanique |
| Réglage | Calage 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