Contacts reed, aimants et Yocto-PWM-Rx

Contacts reed, aimants et Yocto-PWM-Rx

Un client a récemment contacté le support Yoctopuce pour nous demander pourquoi son tachymètre fabriqué maison ne fonctionnait pas avec un Yocto-PWM-Rx. On s'est un peu intéressé à la question et, à notre grande surprise, on a découvert que générer un signal PWM propre avec un aimant et un contact reed n'est pas aussi trivial qu'on pourrait le penser...



Les contacts reed

Les contacts reed, aussi appelés Interrupteurs à Lames Souple (ILS) en français, sont très utilisés dans les systèmes d'alarme pour détecter les ouvertures de fenêtres et de portes. Vous en avez peut-être déjà utilisé à l'école lors de travaux pratiques de sciences physiques. Ce sont des petites ampoules de verre avec deux pattes, à l'intérieur il y a deux lamelles souples reliées chacune à une patte. En présence d'un champ magnétique suffisamment puissant, les lamelles se déforment et entrent en contact, ce qui établi un contact électrique entre les pattes de l'ampoule.

Un contact reed, on distingue bien les deux lamelles à l'intérieur
Un contact reed, on distingue bien les deux lamelles à l'intérieur


Et c'est probablement là que s'est arrêté votre professeur de physique dans sa description d'un contact reed. Ce qu'il ne vous a probablement pas dit c'est que le volume dans lequel il faut placer un aimant pour qu'il active le contact dépend de l'orientation de l'aimant par rapport au contact et que ce volume n'est pas sphérique, ni cylindrique, ni même convexe.

Dessiner la carte d'activation

Pour vous montrer ça, on a monté une petite expérience toute simple: on a placé un petit aimant cylindrique de 5x5mm au bout d'un AxiDraw et on a balayé le plan aux abords d'un contact reed. L'activation du contact est détectée avec un Yocto-Knob et on a fait en sorte que l'AxiDraw laisse une trace sur le papier à chaque détection. Le programme qui fait ça tient en quelques lignes de code python. On a testé deux orientations: l'aimant perpendiculaire au contact et l'aimant parallèle au contact.


Vue d'ensemble de notre expérience
le support pour l'aimant  Le Contact reed et le Yocto-Knob


  


Résultat avec l'aimant perpendiculaire  Résultat avec l'aimant Parallèle


Le résultat, quoique que fort joli, est édifiant. Les zones d'activation ont une forme de lobes et ces lobes sont très différents en fonction de l'orientation.

  • Lorsque l'aimant est perpendiculaire au contact, on voit deux lobes bien distincts dont la longueur est clairement limitée par la taille des pattes du contact reed. Entre les deux lobes, il y a une zone morte bien visible. En d'autre termes, si vous placez un aimant dans le plan de symétrie d'un contact reed, perpendiculaire au contact, ce dernier ne s'activera pas. Voila un comportement pour le moins contre-intuitif.
  • Lorsque l'aimant est parallèle, le résultat est encore plus spectaculaire: on distingue trois lobes, avec celui du milieu plus ample que les deux autres.

Cartes d'activation d'un contact reed avec l'aimant perpendiculaire ou parallèle au contact
Cartes d'activation d'un contact reed avec l'aimant perpendiculaire ou parallèle au contact


Dans tous les cas, plus l'aimant est puissant, plus les lobes sont grands. De cette expérience on peut déduire quelques règles essentielles pour construire un tachymètre avec un contact reed.

Construire un tachymètre

Un tachymètre, plus communément appelé compte-tour, sert à compter le nombre de tours par unité de temps effectué par un dispositif quelconque. Pour cela, on peut placer un aimant sur un disque qui tourne à proximité d'un contact reed et compter les activations. Cette technique est souvent utilisé par exemple dans les compteurs d'eau. C'est assez facile à construire, à condition de savoir qu'il ne faut pas placer l'aimant n'importe comment.

Une autre expérience

On a construit un petit tachymètre entraîné par un petit moteur lui-même alimenté par un Yocto-0-10V-Tx. On a collé deux aimants sur le disque pour des raisons d'équilibrage, mais un seul aurait suffit pour démontrer le principe. Un Yocto-PWM-Rx compte les activations du contact et l'expérience est contrôlée avec un oscilloscope connecté aux pattes du contact. Le pull-up du signal est assuré par le Yocto-PWM-Rx via le fil jaune.

Schéma de notre petit tachimètre expérimental
Schéma de notre petit tachimètre expérimental


Le même, en vrai, on peut changer le disque et changer la distance entre le disque et le contact reed à l'aide de rondelles
Le même, en vrai, on peut changer le disque et changer la distance entre le disque et le contact reed à l'aide de rondelles



Lorsque l'aimant est perpendiculaire au contact, il provoque deux activations par passage, quelque soit la distance entre l'aimant et le contact. Le signal engendré n'est pas un vrai signal PWM: sur l'oscilloscope on distingue bien les deux activations par période.

Aimant perpendiculaire au contact, le niveau le plus bas correspond aux activations
Aimant perpendiculaire au contact, le niveau le plus bas correspond aux activations



Lorsque l'aimant est parallèle au contact et passe au plus proche du contact, on distingue bien trois activations par passage, ce n'est toujours pas un signal PWM.

Aimant parallèle, très proche au contact
Aimant parallèle, très proche au contact



Par contre, si on place l'aimant parallèle au contact et à bonne distance, l'aimant ne traverse que le lobe central et on obtient enfin signal PWM exploitable par le Yocto-PWM-Rx.

Aimant parallèle, à bonne distance du contact: on obtient un signal correct. Ici à ~50Hz
Aimant parallèle, à bonne distance du contact: on obtient un signal correct. Ici à ~50Hz



Notez que si on avait tout de suite eu l'idée de chercher dans Google "Reed contact magnetic field orientation" on aurait obtenu tout plein d'application notes de fabricants de contacts reed qui confirment ces résultats.


Rebonds

Il y a une autre subtilité à prendre en compte: un contact reed est un contact électro-mécanique, et comme tous les contacts électro-mécaniques il a tendance à rebondir à chaque activation. Ces rebonds sont parfaitement visibles sur l'oscilloscope pour peu qu'on choisisse un résolution temporelle suffisamment élevée.

Rebonds à l'activation d'un contact reed, notez la résolution de 5us/division
Rebonds à l'activation d'un contact reed, notez la résolution de 5us/division


Le Yocto-PWM-Rx étant un senseur conçu pour détecter des alternances haut/bas très rapides du signal, il ne va pas manquer de détecter ces rebonds, qui pourraient fausser la mesure. C'est pour la même raison que nous avions ajouté récemment au Yocto-PWM-Rx la possibilité de configurer un intervalle de suppression des rebonds, décrit dans un article précédent. Mais dans le cas d'un tachymètre où la période de rotation varie grandement, un simple intervalle de suppression des rebonds ne suffit pas forcément.

Solution

Au vu du résultat de ces expériences fort instructives, on a décidé d'améliorer encore le firmware du Yocto-PWM-Rx pour que ses mesures sont moins dépendantes de la forme du signal. Avec le nouveau firmware qu'on vient de publier, le Yocto-PWM-Rx est capable de détecter la fréquence fondamentale d'un signal périodique même si ce n'est pas strictement un PWM, et de calculer le rapport état haut/bas sur la durée d'une période. Les rebonds et les double/triple déclenchements n'empêchent donc plus la mesure correcte de la fréquence.

Si nécessaire, vous pourrez identifier un signal qui n'est pas strictement un PWM à l'aide de la méthode get_edgesPerPeriod() qui retourne le nombre de flancs détecté lors du dernier cycle. Pour un signal PWM pur, le nombre de flancs devrait toujours être deux.

Il est cependant important de comprendre que si ce nouveau firmware vous permettra de masquer le mauvais design d'un tachymètre électromagnétique, il ne pourra pas vous éviter certaines conséquences. Par exemple, si votre contact reed est activé trois fois par passage, il est probable que sa durée de vie en sera réduite d'autant.

Conclusion

Le design d'un tachymètre basé sur un aimant et un contact reed est assez contre-intuitif, il ne faut pas choisir un plus gros aimant possible et l'orienter perpendiculairement au plus proche du contact. Il faut choisir un petit aimant, l'orienter parallèlement au contact et le faire passer assez loin de ce dernier. Si vous n'obtenez pas le résultat escompté vous aurez probablement besoin d'un oscilloscope pour comprendre ce qu'il se passe, n'importe quel modèle bon marché fera l'affaire. Ceci dit, s'il n'y pas de risque d'accumulation poussières ou de saletés dans votre tachymètre, vous aurez peut-être meilleur temps de vous rabattre sur un design basé photo-transistor qui aura beaucoup moins de contraintes.


Commenter aucun commentaire Retour au blog












Yoctopuce, get your stuff connected.