(Capteurs à réluctance variable et conditionnement du signal : dernière mise à jour par Benjamin le 6/11/2023)
Les capteurs à réluctance variable (VR pour variable reluctance en anglais) sont utilisés pour détecter le passage d’une masse métallique ferromagnétique à proximité du capteur. On les appelle aussi capteurs de proximité inductifs à réluctance variable. Ils sont fréquemment employés pour mesurer la vitesse de rotation d’un moteur ou connaître la position angulaire d’un arbre en rotation à un instant donné.
Qu’est-ce que la réluctance ?
La réluctance est une quantité qui caractérise la “résistance” d’un circuit magnétique au passage du flux magnétique. Par exemple, les lignes de flux magnétique s’établissent dans l’air de l’entrefer d’un aimant permanent (qui constitue en lui-même un circuit magnétique) avec une réluctance élevée, la perméabilité magnétique de l’air étant faible.
Cette réluctance devient extrêmement faible si une pièce de fer doux est placée en contact avec les deux pôles de l’aimant. Elle sera intermédiaire si la même pièce de fer doux est placée dans l’entrefer de l’aimant, mais sans entrer en contact avec ce dernier. Le champ magnétique est bien sûr également modifié.
Les capteurs à réluctance variable
Les capteurs VR mettent à profit cette propriété magnétique. Ils associent un aimant permanent et une bobine. Le schéma ci-dessous (fig. 1) représente un tel capteur. Le noyau de la bobine est placé à proximité d’une roue dentée en rotation.
A chaque fois qu’une dent passe en regard du capteur, la réluctance du circuit magnétique généré par l’aimant permanent est modifiée, donc le champ magnétique est également modifié. Ce qui induit un courant dans la bobine, et donc un signal aux bornes de cette dernière.
La fréquence et l’amplitude du signal sont proportionnelles à la vitesse de rotation, l’amplitude est par ailleurs inversement proportionnelle à l’épaisseur de l’espace entre le capteur et les dents de la roue. Le principal inconvénient de ce capteur est donc de ne pas pouvoir détecter les mouvements trop lents ou trop distants.
![](https://avionicsduino.com/wp-content/uploads/2023/11/PrincipeCapteurVR.png)
Le signal n’est pas modifié par le sens de rotation. Dans l’exemple de la figure ci-dessus, si l’on souhaite que chaque période commence par la partie négative, il faut intervertir les fils du capteur, et non le sens de rotation de la roue dentée.
Dispositif expérimental
Expérimentalement, il est facile d’étudier le signal d’un capteur bon marché du commerce à l’aide du dispositif ci-dessous (fig. 2). Un disque en contreplaqué est équipé de deux petites masses en acier identiques, diamétralement opposées. Après vérification de l’équilibrage, le disque est mis en rotation rapide grâce à une perceuse à colonne. Le capteur est placé le plus près possible du disque.
![](https://avionicsduino.com/wp-content/uploads/2023/11/EtudeEperimentaleCapteurVR-1024x768.png)
La figure 3 illustre le signal obtenu. Sur cet oscillogramme, on constate qu’une période sur deux a une amplitude légèrement moins importante par rapport aux périodes adjacentes. Effectivement, une des deux petites masses en acier est très légèrement plus loin du bord du disque que l’autre.
![](https://avionicsduino.com/wp-content/uploads/2023/11/OscillogrammeEtudeExpCapteurVR.png)
Les capteurs à réluctance variable des moteurs Rotax
Les moteurs Rotax 91x sont équipés de cinq capteurs VR : un pour mesurer la vitesse de rotation du moteur (destiné au compte tours), et les quatre autres pour synchroniser le double allumage électronique avec la position du vilebrequin.
Chacun de ces capteurs délivre une seule impulsion par tour, compte tenu de la géométrie du volant : les deux indentations du volant (rouge et verte) ne sont pas dans un même plan. Les capteurs rouges et verts sont également décalés, ils sont dans le même plan que l’indentation de couleur identique. Ceci est illustré par l’animation ci-dessous (fig. 4). On remarquera également que les deux indentations du volant ne sont pas diamétralement opposées, de façon à prendre en compte les positions des capteurs VR.
![](https://avionicsduino.com/wp-content/uploads/2023/11/FlyWheelAnimation.gif)
Le signal obtenu
Le signal du capteur du compte tour est représenté sur la figure ci-dessous (fig. 5). L’amplitude dépend de la vitesse de rotation. La documentation Rotax indique une amplitude aux alentours de 100 volts au régime maximal autorisé.
![](https://avionicsduino.com/wp-content/uploads/2023/11/OscillogrameCapteurVR_MCR.png)
Dans l’avion où cet oscillogramme a été réalisé, un des fils du capteur est relié à la masse. L’entrée de l’oscilloscope a été connectée à l’autre fil (et à la masse). On constate que ce n’est pas “le bon fil” qui a été relié à la masse, car chaque période commence par la partie négative, et le croisement avec le potentiel nul (zero crossing) s’effectue donc en montée.
Certains circuits de conditionnement du signal (l’étage d’entrée du compte tours, destiné à convertir ce signal analogique en un signal numérique carré) fonctionneraient mieux lorsque le signal commence par une partie positive et par conséquent lorsque le « zero crossing » se fait en phase descendante. Nous n’avons pas constaté ce phénomène, nous n’avons pas eu à inverser les fils de ce capteur.
On remarque un certain « parasitage » du signal, la ligne de base est franchement ondulée. Mais ces ondulations sont périodiques, identiques à chaque période : elles sont très probablement liées aux masses métalliques en rotation au voisinage du capteur. Il existe en particulier en milieu de période un pic plus important dont l’amplitude peut atteindre presque 10 volts.
Ce pic secondaire est probablement lié au passage de l’indentation du volant qui est décalée dans l’autre plan. Et on va voir plus loin qu’il faut en tenir compte dans la conception du circuit de conditionnement du signal, sous peine de voir ce pic secondaire pris en compte, ce qui aboutirait à mesurer une vitesse de rotation double de la vitesse réelle.
Il n’est pas impossible que ce « parasitage » assez important soit lié au fait qu’une des bornes du capteur soit reliée à la masse. Un tel montage équivaut à utiliser un « single-ended variable reluctance sensor », c’est-à-dire un capteur avec un seul fil de sortie, l’autre extrémité de la bobine étant relié en interne à la masse du capteur. Avec un « differential variable reluctance sensor », le capteur est isolé de la masse, les deux fils sortant de la bobine sont reliés via une paire torsadée à deux entrées différentielles au niveau du circuit de conditionnement du signal, ce qui confère une bien meilleure immunité électromagnétique.
Le capteur utilisé pour nos expérimentations initiales (photo ci-dessous, fig. 6) est un capteur différentiel, à deux fils, tout comme les capteurs des moteurs Rotax.
![](https://avionicsduino.com/wp-content/uploads/2023/11/CapteurVR_LowCost.png)
Et les capteurs à effet Hall ?
Les capteurs VR sont des composants passifs qui ne nécessitent pas d’alimentation et qui fournissent un signal analogique. Ils ne doivent pas être confondus avec les capteurs à effet Hall, parfois utilisés dans le même but. Les capteurs à effet Hall sont des composants actifs nécessitant une alimentation, ils ont trois fils : masse, alimentation et signal.
L’avantage principal des capteurs à effet Hall est qu’ils délivrent un signal digital qui ne nécessite aucun conditionnement particulier avant connexion à un microcontrôleur (sous réserve d’une tension de sortie adaptée). Mais ils sont plus complexes et nettement plus fragiles que les capteurs VR, lesquels sont réputés indestructibles et très fiables dans l’ambiance chaude et « vibrante » d’un moteur thermique.
Le conditionnement du signal
Le conditionnement du signal d’un capteur VR est donc indispensable avant tout traitement par un microcontrôleur, afin de convertir de façon efficace et fiable ce signal analogique à haute tension en un signal carré propre, dépourvu de parasites, de fréquence identique, et d’amplitude compatible avec les entrées d’un microcontrôleur.
Convertir un signal analogique parasité de plus de 100 volts d’amplitude et de fréquence variable en un signal de type TTL est complexe. Voir ci-dessous (fig. 7) un exemple de circuit d’entrée de compte tours utilisé dans une version ancienne du contrôleur Megasquirt. Ce circuit aux nombreux composants n’utilisait pas que des composants discrets, il comportait déjà un circuit intégré, à savoir un double amplificateur opérationnel.
![](https://avionicsduino.com/wp-content/uploads/2023/11/CircuitEntreeMegaSquirtAncien.png)
Les solutions intégrées
Plusieurs fabricants de composants électroniques produisent désormais des circuits intégrés spécialement dédiés au conditionnement du signal des capteurs VR : Texas Intruments avec le LM815, Onsemi avec le NCV1124, et Maxim Integrated avec la famille MAX992x.
Le LM815 est le plus ancien, il semble abandonné par les sites Mega/MicroSquirt et Speeduino. Nous ne l’avons pas testé.
Le NCV1124 a été testé sans succès. Même en conditions expérimentales, avec un générateur délivrant un signal dépourvu de parasites, il a été impossible de déterminer le bon réglage des composants externes permettant une mesure fiable et reproductible du régime moteur sur toute la plage de 0 à 6000 tours minutes. Tel réglage convenait aux bas régimes, mais « décrochait » à partir de 4000 ou 4500 tours, et tel autre pouvait « monter » à 6000 tours, mais ne prenait pas en compte les régimes plus faibles. Le NCV1124 n’est adapté qu’aux capteurs VR « single-ended », il ne comporte pas d’entrée différentielle.
Les tests en vol avec un montage basé sur le NCV1124 se sont avérés très décevants, ce qui a conduit à adopter une autre solution. Ces mauvais résultats étaient peut-être dus en partie à un mauvais usage de notre part, et en partie aux parasites notés sur le circuit du capteur VR de l’avion utilisé pour les tests.
Au moment des tests, nous n’avions pas encore observé le signal du capteur VR à l’oscilloscope, nous n’avions donc pas repéré le pic secondaire qui se produit à chaque période entre les pics principaux, et nous n’avons peut-être pas su adapter en conséquence notre circuit. De fait, nous avons noté à plusieurs reprises que ce pic « déclenchait » le NCV124, ce qui entrainait un doublement du RPM.
Ci-dessous le même oscillogramme que plus haut, mais avec la sortie du NCV1124 en deuxième trace, en violet (fig. 8). On y voit très nettement l’effet délétère de ce pic parasite. Un autre élément déconcertant avec le NCV1124, c’est l’absence de corrélation constatée à l’oscilloscope, dans certaines conditions, entre le zero-crossing du signal et le signal digital obtenu en sortie. Si on rajoute à tout cela un manque certain de clarté de la datasheet, malgré une note d’application associée pas beaucoup plus limpide, et le fait que nous n’ayons trouvé sur Internet aucun utilisateur ni défenseur de ce circuit, on comprendra facilement pourquoi nous avons abandonné toute tentative de l’utiliser.
![](https://avionicsduino.com/wp-content/uploads/2023/11/OscillogrameCapteurVR_MCR_avec_NCV.png)
Le MAX9924
Nous avons donc retenu la solution de la famille MAX992x, et plus particulièrement le MAX9924. L’entrée différentielle de ce circuit accroit l’immunité contre les interférences électromagnétiques, mais il est également possible d’utiliser une seule entrée pour les capteurs de type single-ended.
L’amplificateur de précision et le comparateur permettent tout autant d’accepter en entrée des signaux jusqu’à 300 volts que des signaux de très faible amplitude, et autorisent une détection de haute précision du zero-crossing comme nous avons pu le vérifier à l’oscilloscope. Enfin, ce circuit est doté d’un mécanisme interne d’adaptation du pic seuil qui fait qu’après une impulsion d’amplitude x, aucune impulsion ultérieure d’amplitude inférieure à x/3 ne sera prise en compte. Ce mécanisme s’auto-désactive après 85 ms. Ceci a un grand intérêt pour traiter des signaux très bruités.
La tension d’alimentation du circuit est de 5 volts, mais la sortie open-drain avec une résistance pull-up externe vers une tension au choix de l’utilisateur permet de connecter cette sortie à n’importe quel microcontrôleur quelle que soit sa tension logique, 5 ou 3.3 volts.
Un point important à bien comprendre concerne la protection interne des entrées par des diodes de clamping intégrées, comme on le voit sur l’extrait ci-dessous du diagramme fonctionnel de la datasheet (fig. 9).
![](https://avionicsduino.com/wp-content/uploads/2023/11/DiodesClampingMAX9924.png)
Ces diodes empêchent la tension appliquées aux étages suivants du circuit intégré de sortir du domaine compris entre 0 et Vcc (5 volts). Ce qui peut paradoxalement limiter l’intérêt du mécanisme d’adaptation du pic. En effet, si on reprend l’exemple du signal de notre capteur VR, avec son pic secondaire dont l’amplitude peut atteindre 10 volts crête à crête à haut régime, on comprend qu’en appliquant directement ce signal à l’entrée du MAX9924, on risque de se retrouver dans la situation où le pic principal et le pic secondaire sont tous les deux écrêtés à 5 volts par les diodes, et donc tous les deux pris en considération à égalité.
Nous avons effectivement pu le vérifier expérimentalement avec un générateur et une forme d’onde personnelle bien adaptée pour ce test, avec un grand et un petit pic. Ce qui nous a conduit à compléter l’étage d’entrée du compte tours de l’EMS AvionicsDuino par un pont diviseur calculé de telle façon qu’au ralenti le grand pic conserve une amplitude suffisante, et au régime maximum, l’amplitude du petit pic reste en dessous du seuil adaptatif de déclenchement, soit 1/3 de 5 volts.
Le MAX9924 a un autre intérêt majeur : il possède plusieurs modes de fonctionnement, et il peut parfaitement être également utilisé pour des signaux exclusivement positifs, comme ceux générés par la sortie compte-tours des boîtiers d’allumage électronique, ou ceux du capteur de débit carburant. Cette possibilité est peu documentée dans la datasheet, mais elle est bien expliquée dans la notice du kit d’évaluation du MAX9924.
Nous avons testé expérimentalement ces différents modes avant de décider finalement d’utiliser le MAX9924 comme étage d’entrée universel pour tous les signaux périodiques traités par l’EMS, à savoir les signaux compte tours issus du capteur VR du Rotax et des boîtiers d’allumage électronique, et le signal du capteur de débit carburant .
L’étage d’entrée pour le capteur VR du moteur Rotax
Ci-dessous le schéma de cet étage d’entrée dans le micro-EMS AvionicsDuino (fig. 10).
![](https://avionicsduino.com/wp-content/uploads/2023/11/SchemaEtageEntreeCapteurVR_MAX9924.png)
Ce schéma mixe des données de la datasheet et de la notice du kit d’évaluation. Il est adapté indifféremment aux capteurs VR single ended et différentiels, des jumpers permettent d’adapter la configuration.
On remarque d’emblée les résistances R26 (4.4k) et R27 (10k) d’une part, et les résistances R25 (4.4k) et R28 (10k) d’autre part : elles constituent les ponts diviseurs d’entrée mentionnés plus haut, qui assurent l’atténuation nécessaire et suffisante pour que le pic secondaire du signal ne risque pas de déclencher le circuit.
Configuration pour un capteur VR single-ended
Le MAX9924 est alors configuré dans son mode A1, voir la datasheet.
Le signal atténué en provenance de la broche IN+ du connecteur J9 est appliqué sur la broche IN+ du MAX9924, via la résistance R23 de 10k.
La broche IN- du connecteur J9 est laissée flottante.
- Le jumper JU7/J14 est fermé par un cavalier,
- et un autre cavalier relie les broches 1 et 2 de JU2/J13, si bien que l’entrée IN- et la broche BIAS du MAX9924 sont connectées ensemble et à la ligne 2.5 volts issue du pont diviseur constitué par les deux résistances R7 et R24 de 1k entre la masse et la ligne 5V. Avec un tel montage, le déclenchement n’est pas lié au zero crossing, mais au croisement avec une tension positive de 2.5 volts.
- Un cavalier est positionné entre les broches 2 et 3 du jumper JU5/J6, ce qui connecte la broche INT_THRS à Vcc.
- Le solder jumper JP2 est fermé par un pont de soudure, ce qui connecte la broche EXT à la masse.
- Enfin le jumper JU3/J10 reste ouvert, la broche ZERO-EN est flottante.
La sortie COUT (intitulée aussi Tach_Out_Rotax sur le schéma) est tirée à 3.3 volts par la résistance pull-up R4 de 10k, et connectée à une broche digitale du microcontrôleur.
Configuration pour un capteur VR différentiel
Le MAX9924 est alors configuré dans son mode A2 :
Les deux fils du capteur VR sont connectés au entrées IN+ et IN- du connecteur J9. Le sens de connexion n’a pas d’incidence sur le fonctionnement. De là, le signal est atténué comme expliqué plus haut, puis appliqué via les résistances R8 et R23 aux entrées IN+ et IN- du MAX9924.
La configuration des jumpers est la suivante :
- JU7/J14 ouvert.
- JU2/J13 : cavalier sur les broches 2 et 3, donc broche BIAS à la masse.
- JU5/J6 : cavalier sur les broches 1 et 2, donc broche INT_THRS à la masse.
- Solder Jumper JP2 soudé, donc broche EXT à la masse.
- JU3/J10 : cavalier sur les broches 1 et 2, donc broche ZERO_EN à la masse.
Compte tenu des propriétés du MAX9924, ce circuit intégré est également utilisé comme étage d’entrée pour les autres signaux périodiques exploités par l’EMS AvionicsDuino, à savoir le signal TACHO en provenance des boîtiers d’allumage électronique et le signal issu du capteur de débit carburant.
L’étage d’entrée pour la sortie TACHO des boîtiers d’allumage électronique
Le montage est de type Mode A1, avec une entrée unique, aucun cavalier n’est nécessaire, puisqu’avec ce type de capteur, aucun changement ultérieur de mode n’est à prévoir. Le solder jumper JP1 doit être soudé.
La figure 11 ci-dessous montre le schéma de cet étage d’entrée. Un inverseur au niveau du micro-EMS (non visible sur le schéma) permet, pour le compte-tours, d’exploiter soit le capteur VR, soit le signal Tacho des allumeurs.
Les boîtiers d’allumage électronique du MCR où est monté l’EMS AvionicsDuino sont de marque Ignitech, modèle Sparker DC-CDI-P2. La sortie Tacho de ces boîtiers a besoin d’être chargée par une résistance, c’est le rôle de R31 (470 ohms).
Le signal issu de ces boîtiers est assez bruité. Il est grossièrement carré, avec une amplitude d’environ 15 volts sur cette charge de 470 ohms.
![](https://avionicsduino.com/wp-content/uploads/2023/11/SchemaEtageEntreeTachoIgnitechMAX9924-1024x396.png)
L’étage d’entrée du Fuel Flow
Le montage est également de type Mode A1, avec une entrée unique, sans cavalier de configuration. Le solder jumper JP3 doit être soudé. Voir le schéma ci-dessous (fig. 12).
Le capteur de débit utilisé est un Red Cube FT-60 (Electronics International). Ce capteur a une sortie de type collecteur ouvert, d’où la résistance pull-up (R18, 4.7k) vers la ligne 5 volts.
Le signal du Red Cube est également assez bruité, d’où la nécessité de cet étage d’entrée, afin d’éviter les impulsions surnuméraires (faussant le calcul du débit carburant instantané) qu’on observerait en connectant directement le Red Cube au microcontrôleur du micro-EMS, ou même en le connectant par l’intermédiaire d’un optocoupleur. Par ailleurs, lorsque le transistor de sortie du Red Cube est passant, le potentiel de sortie n’est pas rigoureusement à zéro, mais plutôt aux environs de 0.2 à 0.3 volts, d’où l’importance du Mode A1 avec un seuil de déclenchement décalé à 2.5 volts.
![](https://avionicsduino.com/wp-content/uploads/2023/11/SchemaEtageEntreeFuelFlowMAX9924.png)
Le lecteur est invité à se reporter à la page du micro-EMS Teensy pour en savoir plus, notamment sur les résultats obtenus en vol.