LOCODUINO

Capteurs à effet Hall

.
Par : Christian

DIFFICULTÉ :

Les capteurs à effet hall sont des composants électroniques qui réagissent à la présence d’un champ magnétique. Ils peuvent donc être utilisés sur un réseau miniature pour détecter le passage d’une locomotive munie d’un aimant et ainsi remplacer les ILS (Interrupteurs à lames souples) qui présentent l’inconvénient des rebonds propres à tous capteurs mécaniques. Mais ils peuvent aussi servir à bien d’autres choses et leur petite taille devient un atout dans un projet embarqué. Cet article explique l’essentiel au sujet des capteurs à effet Hall et comment on peut les utiliser en modélisme ferroviaire.

Plusieurs types de capteurs à effet Hall

Les capteurs à effet Hall se présentent généralement sous la forme d’un petit composant à trois broches : deux pour son alimentation et une pour le signal de sortie. Le boîtier est alors du type TO-92 comme celui de certains transistors mais on peut aussi trouver des capteurs CMS (Composant monté en surface) comme le montre la figure 1. Il existe aussi des capteurs à effet Hall dans des boitiers SOIC à 8 broches mais leur spécialisation fait que leur utilisation n’est pas nécessaire en modélisme ferroviaire. Dans cet article, nous nous limiterons aux capteurs à trois broches. Pour ceux qui veulent comprendre comment fonctionne l’effet Hall, voici la page à consulter sur Wikipédia.

Figure 1
Figure 1
Capteurs à effet Hall en boîtiers TO-92 ou en CMS

Deux broches servent à alimenter le capteur ; une broche est à relier au pôle négatif de l’alimentation (encore appelé GND) et l’autre broche est à relier au pôle positif de l’alimentation. Or, cette alimentation peut être très différente d’un modèle à l’autre et il convient donc de choisir des capteurs dont l’alimentation reste compatible avec la tension de travail de nos cartes Arduino (généralement 5 V et parfois 3,3 V). On peut ainsi choisir des capteurs dont l’alimentation va de 4,5 V à 6 V, mais il existe aussi des capteurs dont l’alimentation va de 2,5 à 7,5 V pouvant ainsi travailler aussi bien avec des cartes en 5V que celles en 3,3 V. Certains capteurs à effet Hall requièrent une alimentation de 24 V et sont plutôt réservés à des applications industrielles. Il faut donc faire attention à ce point au moment d’acheter les capteurs.

La troisième broche délivre le signal en cas de détection d’un champ magnétique et c’est là que les capteurs peuvent être différents les uns des autres. En effet, certains capteurs délivrent un signal digital, c’est-à-dire correspondant à 0 V ou à la tension d’alimentation du capteur soit 0 ou 5 V pour un capteur compatible Arduino. Et il y a une subtilité supplémentaire, certains capteurs sont unipolaires et ne peuvent détecter qu’un seul pôle de l’aimant (le nord ou le sud) alors que d’autres capteurs sont bipolaires et détectent aussi bien le pôle nord que le pôle sud de l’aimant. Encore une fois, le choix du capteur dépend de ce qu’on veut en faire. Mais il existe aussi des capteurs qui délivrent un signal analogique sous forme d’une tension comprise entre un minimum et un maximum (au-delà le capteur sature) et ces capteurs sont bipolaires et réagissent aussi bien au pôle nord qu’au pôle sud d’un aimant comme on le verra plus loin. Pour une bonne détection, l’axe du capteur doit être aligné avec l’axe de l’aimant comme le montre la figure 2.

Figure 2
Figure 2
L’axe du capteur doit être aligné avec l’axe de l’aimant pour une bonne détection

Le choix du capteur est fonction de l’utilisation qu’on veut en faire : bien souvent une sortie digitale peut convenir, parfois une sortie analogique est nécessaire. Il suffit de se référer à la datasheet du composant pour bien repérer les broches, notamment celle donnant le signal afin d’envoyer ce dernier vers la broche d’Arduino qui le traitera : entrée numérique ou entrée analogique.

Des capteurs déjà montés

Le marché des composants électroniques nous permet de trouver des capteurs à effet Hall déjà montés sur de petits circuits imprimés de taille très réduite et munis d’un connecteur pouvant s’enficher sur une breadboard ou pouvant être relié à une carte Arduino avec des câbles Dupont. Cela évite d’avoir à faire des soudures sur un composant déjà petit mais bien évidemment, ces cartes ne conviennent pas pour des projets embarqués où la place disponible se fait rare. Les broches sont clairement identifiées sur ce genre de circuit, ce qui évite de se tromper. Revers de la médaille, le prix de telles cartes est bien supérieur au prix du composant lui-même.

La figure 3 montre deux exemples qui se ressemblent mais qui sont loin d’être identiques : le circuit de gauche est basé sur un capteur SS49E et délivre un signal analogique sur sa broche S alors que le circuit de droite est basé sur un capteur unipolaire SS44E et ne délivre qu’un signal digital du genre tout ou rien. La taille du circuit imprimé est de 20 x 13 mm.

Figure 3
Figure 3

La figure 4 montre un autre circuit imprimé de 36 x 15 mm avec le capteur SS49E (ou bien un capteur équivalent comme le KY-024). Grâce au circuit LM393 (double comparateur) monté sur le circuit imprimé, on obtient aussi un signal digital (broche D0) en plus du signal analogique (broche A0) et un potentiomètre (en bleu) permet de régler le seuil de détection pour faire basculer le signal digital (une LED sur le circuit permet de contrôler l’état de la sortie digitale). Ce genre de circuit imprimé se trouve aisément sur internet et peut facilement être fixé sous la plateforme de voie. Les broches sont repérées GND et + pour l’alimentation et A0 ou D0 pour le type de sortie (analogique ou digitale).

Figure 4
Figure 4

Signal analogique délivré

La figure 5 est extraite de la datasheet du capteur à effet Hall SS49E (les caractéristiques sont pratiquement les mêmes pour un capteur KY-024). On voit que le signal de sortie évolue entre 1 et 4 V (si le composant est alimenté en 5 V) en fonction du champ magnétique. En absence de champ magnétique, la sortie est à 2,5 V (plus ou moins 0,25 V à 25°C). On peut lire la tension sur la broche de sortie en l’envoyant sur une entrée analogique d’Arduino et en utilisant la fonction analogRead() qui renvoie un nombre compris entre 0 et 1023 (0 si la tension est égale à 0 V et 1023 si elle est égale à 5 V). En absence de champ magnétique, on doit alors obtenir une valeur de l’ordre de 512 (en fait, c’est un peu plus dû à l’incertitude du composant et de la lecture par le microcontrôleur mais le principe est le même). Si vous présentez le pôle nord d’un aimant devant le capteur, la lecture donnera plus que 512 et si vous présentez le pôle sud, vous obtiendrez moins ; ceci est vrai si l’aimant est présenté du bon côté du capteur (côté où on peut lire la référence du capteur comme le montre la figure 2) car si vous présentez l’aimant de l’autre côté du capteur, le champ magnétique sera toujours détecté mais les valeurs obtenues seront inversées puisque le champ magnétique est alors inversé par rapport au capteur.

Figure 5
Figure 5

Utilisation avec Arduino

La figure 6 montre comment relier le module à une carte Arduino Uno : quatre câbles Dupont (mâle-femelle) sont nécessaires.

Figure 6
Figure 6

Le programme suivant permet de tester le capteur à effet Hall en lisant la valeur de la tension sur la broche de sortie A0 du module et la valeur HIGH ou LOW sur la broche digitale D0. Les résultats sont envoyés sur le traceur de l’IDE comme le montre la figure 7. On remarque que le signal sur la sortie D0 est inversé par rapport à la valeur mesurée sur la sortie analogique A0 ; quand la valeur mesurée est faible, le signal de sortie sur D0 est à l’état HIGH et allume la LED de la carte Uno.

// Universal_magnetic_sensor.ino
//------------------------------------------------------------
/* Un capteur a effet Hall SS49E est relie a une carte UNO.
 * La sortie analogique A0 est reliee a l entree analogique A0
 * de la carte UNO et la sortie digitale D0 est reliee a 
 * l entree 3 de la carte UNO.
 */

// Declaration des broches
// -----------------------
 const byte analog_sensorPin = A0;
 const byte digital_sensorPin = 3;
 const byte ledPin = 13;

// Declaration des variables globales
// ----------------------------------
 int sensorValue = 0;
 int sensor_Val = HIGH;
 
void setup() {
  pinMode (ledPin, OUTPUT);
  pinMode (digital_sensorPin, INPUT);
  Serial.begin(115200);
}

void loop() {
  sensorValue = analogRead(analog_sensorPin);
  sensor_Val = digitalRead (digital_sensorPin);
  if(sensor_Val == HIGH)
  {
    digitalWrite (ledPin, HIGH);
  }
  if(sensor_Val == LOW)
  {
    digitalWrite (ledPin, LOW);
  }
  Serial.println (sensorValue, DEC);
  delay(300);
}

La figure 7 montre qu’en absence de champ magnétique, la valeur renvoyée par la fonction analogRead() est de l’ordre de 523 ; Le premier créneau correspond à l’approche du pôle nord d’un aimant et le second créneau à son pôle sud. Contrairement à un ILS, il n’y a pas de rebond ; les créneaux sont propres.

Figure 7
Figure 7

Les aimants

Les capteurs à effet Hall peuvent détecter le champ magnétique d’un électroaimant mais dans la majorité des montages, ils sont utilisés pour réagir à la présence du champ magnétique d’un aimant. Il faut donc penser à acheter les aimants en même temps qu’on achète les détecteurs. La taille de l’aimant est à prendre en considération en fonction de la place qu’il trouvera dans le montage ; on trouve des aimants de toutes formes et dimensions. La force du champ magnétique est le second critère pour obtenir un signal franc en fonction de la distance entre aimant et détecteur. La grande variété d’aimants néodymes permet de trouver son bonheur avec une simple recherche sur internet et même dans le cas de projets très particuliers.

Application pratique au modélisme ferroviaire

Rappelons-nous qu’une simple carte Uno dispose de six entrées analogiques et peut donc gérer six capteurs à effet Hall analogiques, sans compter les capteurs digitaux si l’analogique n’est pas nécessaire. Voici quelques exemples d’utilisation de capteurs à effet Hall en modélisme ferroviaire.

Remplacement des ILS
Bien que nécessitant trois fils, les capteurs à effet Hall sont intéressants en modélisme ferroviaire car ils sont bien plus fiables que les ILS qui ont l’inconvénient de créer des rebonds quand ils sont déclenchés. De plus, ces capteurs peuvent reconnaître comment un aimant est positionné sous une locomotive (pôle nord ou pôle sud présenté devant le capteur). On peut utiliser cette propriété dans un automatisme et autoriser deux types de trains en gare, ceux qui doivent s’arrêter et ceux qui ne font que passer. On peut aussi trier les trains soit vers une voie de passage, soit vers une voie à quai pour s’arrêter. Cela vaut bien un fil supplémentaire sans compter que la durée de vie de ces capteurs est bien supérieure à la durée de vie d’un ILS à contacts mécaniques.

Surveillance de vitesse de rotation d’un moteur
Les capteurs à effet Hall peuvent aussi être utilisés pour surveiller les vitesses de rotation d’un arbre de moteur. Il suffit de positionner un aimant sur l’axe d’un moteur et de surveiller le passage de cet aimant devant le détecteur. Dans ce domaine, une application embarquée intéressante a été décrite dans l’article Réalisation d’un wagon de mesure (distance et vitesse) dont je vous recommande vivement la lecture.

Surveillance de la position d’un mouvement mécanique
Avec les capteurs à effet Hall, on peut construire des contacts de fin de course pour surveiller des mouvements mécaniques (roues, portes, barrières, etc.). De par sa petite taille, le capteur peut aussi être embarqué dans un engin roulant, par exemple pour synchroniser le son avec la position des roues d’une locomotive. Je ne peux que vous conseiller la lecture de l’article Automatisation du pont FLEISCHMANN 6152 (HO) avec un ESP32 (1) qui illustre très bien l’utilisation de capteurs à effet Hall dans ce domaine et qui montrent en détails comment le composant doit être câblé (avec photos à l’appui).

Cette liste est loin d’être exhaustive et vous trouverez sur internet d’autres applications dans des domaines comme la robotique ou la domotique ou encore le modélisme naval qui peuvent être détournées au profit du modélisme ferroviaire.

Vous trouverez sur le site LOCODUINO d’autres exemples d’application de capteurs à effet Hall pour compléter les articles déjà cités mais vous en savez maintenant suffisamment pour les utiliser et imaginer tout ce qu’il est possible de faire avec.

9 Messages

  • Capteurs à effet Hall 10 décembre 2020 11:56, par Stéphane

    Merci pour ces explications.

    Répondre

  • Capteurs à effet Hall 18 avril 06:59, par Alain

    Bonjour,
    est ce capable de détecter les aimants de nos locomotives lorsqu’elles passent à proximité ?
    Cordialement

    Répondre

    • Capteurs à effet Hall 18 avril 09:48, par Christian

      Si on parle bien d’un aimant collé sous la locomotive, alors oui. Le capteur Hall s’emploie en modélisme ferroviaire exactement comme un ILS : l’aimant doit donc le survoler.
      Comme expliqué dans cet article, le capteur Hall est plus fiable et n’engendre pas de rebonds qui sont typiques des interrupteurs mécaniques (ou poussoirs).
      En aéromodélisme, les capteurs Hall sont utilisés pour repérer la position des manches des radiocommandes sur les radio haut de gamme : inusables contrairement aux manches à potentiomètres.
      Voici donc un composant à découvrir afin de remplacer nos vieux ILS.

      Répondre

  • Capteurs à effet Hall 19 avril 00:47, par Alain

    ce n’était pas tout à fait ma question
    nos loco ont des moteurs équipés d’aimant
    ces capteurs Hall sont ils capables de détecter les aimants des moteurs au passage des locos ?

    Répondre

    • Capteurs à effet Hall 19 avril 09:17, par Christian

      Je ne saurais répondre car je n’ai jamais fait d’expérience pour cela. Il faudrait essayer et voir comment répondent les capteurs Hall au champ magnétique des aimants du moteur. Mais le signal risque d’être plus aléatoire et pourrait dépendre du type de moteur.
      Pour faire l’expérience, vous pouvez vous inspirer de cet article et sortir la réponse du capteur sur le traceur de l’IDE en faisant survoler le capteur par toutes vos locomotives. Il suffit alors de comparer les résultats et voir si cela reste suffisamment fiable.

      Répondre

  • Capteurs à effet Hall 17 juin 18:48, par Mick012

    Bonjour je n’ai que quelques notions de code Arduino, je voudrais savoir sur le code que vous présentez, si en remplaçant les leds par des servos SG90 avec des pins différents et des hall sensors 49E 325 SG cela pourrait fonctionner.
    Bien sur en ayant les librairies, quelles modifs je dois faire sur votre code.
    J’ai essayé mais je ne vois pas comment modifier votre code, pour obtenir ce que je veux réaliser l’ouverture automatique des portes d’une rotonde à 6 alvéoles. La machine est positionnée par le pont tournant, celle si s’avance passe sur le hall sensor les portes s’ouvrent et après avec un "delay" de 20 à 25 secondes les portes se referment sur la machine bien sur qu’il faut qu’elle ressorte et que le même servomoteur fonctionne en sens inverse, soit par un bouton poussoir soit par un autre hall sensor.
    Cordialement Mick

    Répondre

    • Capteurs à effet Hall 18 juin 11:03, par Christian

      Votre projet se compose de deux tâches à réaliser :

      • détecter une locomotive avec un capteur à effet Hall ; cet article est donc parfait pour vous montrer comment faire.
      • utiliser le signal pour commander un servomoteur qui ouvre les portes de la remise (Arduino sait faire)
        Vous dîtes que vous n’avez que quelques notions de code Arduino ; il faut donc acquérir ce qui vous manque, notamment l’utilisation des servomoteurs. Je vous renvoie à la série d’articles sur le passage à niveau car il n’y a aucune différence entre ouvrir une barrière de PN et ouvrir une porte de remise. L’article 3 de la série vous montrera donc comment faire.
        Vous pouvez aussi lire ce guide qui, à partir de montages très simples que vous pouvez tester sans les construire, vous initiera au système Arduino :
        https://trains.lrpresse.com/A-20021...
        Je ne doute pas que vous réussirez ce projet qui n’a rien de compliqué si vous prenez le temps de vous former à Arduino.

      Répondre

      • Capteurs à effet Hall 18 juin 12:56, par Mick012

        Bonjour à tous, j’ai déjà réalisé des feux de carrefour pas le super marché mais pour les autos, car, camion car systèm.
        Avec des relais qui enclenchent un Stop car Système à l’orange et reste enclenché jusqu’au feu vert après le cycle terminé pour l’autre rue, équipées elles aussi de stop car système comme ceux de faller.
        Une carte arduino uno utilisée, il est possible peut être de le faire avec un nano, deux relais dcc 4 stop car systém 12 leds de 3 couleurs des résistance 220 Ohms. J’ai réalisé tout cela pour mes petits enfants.
        Les feux je les ai dessinés avec Freecad 0.21 et imprimer en 3D avec une imprimante 3D artillery Sidewinder X2 et une Alfawise U30.
        j’ai également suivi les vidéos de Marc Blanchard, et en quelques jours j’ai réalisé mon carrefour.
        Historique dinozorien Dans les années 70 j’avais un Sinclair ZX81 gros comme une main 1 K de ram . Maintenant j’ai 73 ans et j’ai plus de mal à retenir les choses bien que je connaisse encore certaines fonctions comme if, for, et certainement d’autre que Marc n’a pas abordé encore je ne sais pas si goto, gossub, et d’autre sont utilisé en cc++. je vous remercie pour votre aide, je peux vous fournir mon code que vous pourriez améliorer j’en suis sur cordialement Mick.

        Répondre

        • Capteurs à effet Hall 18 juin 18:28, par Christian

          Tout cela constitue un bon début et les petits enfants sont sans doute la meilleure des motivations !
          Votre expérience de la programmation (en BASIC) est aussi un plus, même si le langage pour programmer Arduino est très différent. Effectivement, c’est du C ou du C++, mais oubliez cela. Comme vous débutez, le mieux est de vous limiter aux fonctions d’Arduino (elles sont peu nombreuses) et aux bibliothèques de base (comme Servo dont vous aurez besoin).
          Je vous conseille d’y aller progressivement, sans sauter d’étapes. Vous verrez que vous progresserez très vite.
          Il y a sur ce site de quoi vous occuper pour un bon bout de temps ! ;-)

          Répondre

Réagissez à « Capteurs à effet Hall »

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

Rubrique « Matériel »

Les derniers articles

Les articles les plus lus