LOCODUINO

Forum de discussion
Dépôt GIT Locoduino
Flux RSS

mercredi 21 octobre 2020

80 visiteurs en ce moment

Capteurs à effet Hall

. Par : Christian

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.

  1. // Universal_magnetic_sensor.ino
  2. //------------------------------------------------------------
  3. /* Un capteur a effet Hall SS49E est relie a une carte UNO.
  4.  * La sortie analogique A0 est reliee a l entree analogique A0
  5.  * de la carte UNO et la sortie digitale D0 est reliee a
  6.  * l entree 3 de la carte UNO.
  7.  */
  8.  
  9. // Declaration des broches
  10. // -----------------------
  11. const byte analog_sensorPin = A0;
  12. const byte digital_sensorPin = 3;
  13. const byte ledPin = 13;
  14.  
  15. // Declaration des variables globales
  16. // ----------------------------------
  17. int sensorValue = 0;
  18. int sensor_Val = HIGH;
  19.  
  20. void setup() {
  21. pinMode (ledPin, OUTPUT);
  22. pinMode (digital_sensorPin, INPUT);
  23. Serial.begin(115200);
  24. }
  25.  
  26. void loop() {
  27. sensorValue = analogRead(analog_sensorPin);
  28. sensor_Val = digitalRead (digital_sensorPin);
  29. if(sensor_Val == HIGH)
  30. {
  31. digitalWrite (ledPin, HIGH);
  32. }
  33. if(sensor_Val == LOW)
  34. {
  35. digitalWrite (ledPin, LOW);
  36. }
  37. Serial.println (sensorValue, DEC);
  38. delay(300);
  39. }

Télécharger

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.

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 »

Fonctionnement et pilotage d’une DEL

Qu’est ce qu’une carte Arduino ?

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

Résistances, kézako ?

Les cartes Teensy

Relais électromagnétique

Les diodes classiques

Détecteurs à ultrasons

La carte Arduino Uno

Bouton poussoir

Les différents types de mouvements d’un servomoteur

Les encodeurs en quadrature

Les écrans LCD alphanumériques

Des bus de communication pour l’Arduino

Les interrupteurs

Le microcontrôleur ATtiny45 (1)

Le microcontrôleur ATtiny45 (2)

Le microcontrôleur ATtiny45 (3)

Le microcontrôleur ATtiny45 (4)

Le microcontrôleur ATtiny45 (5)

Le microcontrôleur ATtiny45 (6)

Le microcontrôleur ATtiny45 (7)

Le microcontrôleur ATtiny45 (8)

Le microcontrôleur ATtiny45 (9)

Le microcontrôleur ATtiny45 (10)

Signaux lumineux et Arduino

Les shields de prototypage et de connexion

Commande de moteur à courant continu

Choisir sa carte Arduino

Une station DCC complète, polyvalente et économique avec JMRI.

Écran couleur tactile Kuman

Capteurs à effet Hall

Les derniers articles

Capteurs à effet Hall


Christian

Le microcontrôleur ATtiny45 (10)


Christian

Le microcontrôleur ATtiny45 (9)


Christian

Écran couleur tactile Kuman


Christian

Une station DCC complète, polyvalente et économique avec JMRI.


bobyAndCo

Les cartes Teensy


Christian, Jean-Luc

Choisir sa carte Arduino


Christian

Le microcontrôleur ATtiny45 (8)


Christian

Le microcontrôleur ATtiny45 (7)


Christian

Commande de moteur à courant continu


Christian

Les articles les plus lus

Une station DCC complète, polyvalente et économique avec JMRI.

Commande de moteur à courant continu

Bouton poussoir

Détecteurs à ultrasons

Les interrupteurs

Les diodes classiques

Qu’est ce qu’une carte Arduino ?

Les cartes Teensy

Amplifier le signal de sortie d’un ARDUINO avec un ULN 2803

La carte Arduino Uno