Un senseur à Effet Hall parfait pour Arduino

Le senseur à effet Hall US5881LUA
Un senseur à effet Hall est sensible au champ magnétique. Celui que nous proposons est le Mexelis US5881LUA qui agit comme un interrupteur suivant la présence ou l'absence d'un champs magnétique à proximité.

Bien que cela ne semble pas évident de prime abord, le senseur à Effet Hall est un véritable couteau Suisse.
Il permet de réaliser facilement de très nombreux montages de détection (on/off, ouvert/fermé/ présent/absent, Fin de course, etc) là où il est difficile de placer un switch ou un "interrupteur" de fin de course (ou de passage).

Un avantage du mode digitale (tout ou rien) de ce senseur est qu'il nous affranchit de devoir développer un code plus complexe pour lire et traiter la valeur analogique. Un simple DigitalRead est suffisant :-)




Comble du comble, pas besoin de visserie pour le fixer (ni lui, ni l'aimant), un point de colle chaude ou de double face permettra de fixer aussi bien le senseur que l'aimant.

Une autre caractéristique importante du IS5881LUA est qu'il n'est sensible qu'au pôle SUD d'un aimant mais aussi que sa surface sensible se trouve sur l'avant (et nulle part ailleurs sur le senseur).
Cet également un avantage indéniable car il permet de mettre en place des montages qui fonctionnent dans des cas bien précis... et pas un peu n'importe comment lorsqu'un aimant s'approche... peu importe la direction... peu importe la polarité.
Grâce à ces dernières caractéristiques, il devient vraiment très facile de compter le nombre de tours que fait une roue :-)


Des aimants
Un senseur à effet Hall étant sensible au champs magnétique... il s'utilise conjointement avec un aimant. 
Selon la documentation du constructeur, certain aimant de frigo sont déjà suffisamment puissant pour activer le senseur à Effet Hall.
Nous suggérons néanmoins l'usage d'un aiment Rare Earth (disponible ici chez MCHobby).

Cet dernier aimant sur littéralement surpuissant... rien à voir avec un jouet... et pourtant tellement fascinant.

Des cas d'applications
Notre wiki reprend un tutoriel complet avec de nombreuses applications (mise en situation) du senseur à Effet Hall dans des cas Rotatif et Non-Rotatif.
En voici deux parmi les nombreux présentés dans notre wiki.

Détecteur de proximité
Dans la figure 3A, le pole magnétique SUD est proche du senseur à effet Hall. Le senseur est donc activé (ON).
Dans le figure 3B, le pole magnétique SUD s'est déplacé trop loin. Le senseur est désactivé (OFF).

Source: Documentation de Melexis.

Interruption magnétique
Dans la figure 5A, le pole magnétique SUD peut atteindre le senseur à effet Hall par l'intermédiaire de la fenêtre. Le senseur est donc actif (ON).

Dans le figure 5B, le senseur est inactif (OFF) parce que le champ magnétique est bloqué par un obstacle ferreux.

Un cas plus personnel - La poubelle interactive
Il y a peu, j'ai décidé de faire "roter" ma poubelle lorsque l'on jetait quelque-chose dedans (PS: ma femme n'est pas d'accord pour les "Rot"... alors j'ajouterais quelques autres surprises sonores).
Je suis certains que mes enfants apprécierons certainement cette application :-)

Pour la réaliser, j'ai déjà la plupart du matériel à la disposition:
Mon seul problème était la détection de l'ouverture de la trappe de la poubelle.
La mise en oeuvre d'un switch (ou interrupteur) standard s'est avéré compliqué (voire impossible) à cause de la configuration de la poubelle elle-même... absolument pas prévue pour ce cas d'utilisation :-/

Maintenant que je dispose d'un senseur à effet Hall, la mise en place de l'ouverture de la trappe devient totalement rudimentaire... je vais coller l'aimant sur la trappe (avec un collant double-face) et utiliser un senseur à Effet Hall pour voir quand la trappe est ouverte (disparition du champ magnétique).

Autre cas de mise en oeuvre
Ce senseur peut servir dans de très-très nombreux cas. Nous en présentons beaucoup sur notre wiki.


Montage pour Arduino
Mettre en oeuvre notre senseur à Effet Hall est assez simple. Voici les différentes informations qui vous permettrons d'y arriver.
Sa mise en place nécessite l'usage d'une résistance de Pull-Up  de 10 KOhms (que nous fournissons avec le senseur). Si vous désirez en savoir plus sur la raison de cette résistance,nous vous proposons de lire notre article consacré à ce senseur sur notre Wiki.


Le résultat en image
Avant la portion de code, je vous propose de voir le résultat du montage en image.
Le but ici est de détecter la présence de l'aimant... la mise en oeuvre la plus simple possible.


Le code pour Arduino
 /* Senseur à Hall Effect 
 
 Allume ou éteind une LED connectée sur la pin digitale 13 en fonction  
 de l'activation d'un senseur à Effet Hall US5881LUA sensible au champ 
 magnétique.
 
 Le senseur Effet Hall US5881LUA est disponible chez MC Hobby
    http://mchobby.be/PrestaShop/product.php?id_product=86 
 Les aimants surpuissant de Rare Earth sont aussi disponibles chez MC Hobby
    http://mchobby.be/PrestaShop/product.php?id_product=87 
 .
 
 Le circuit:
 * LED connectée à la masse (GND) et à la pin 13 par l'intermédiaire d'une résistance de 330 Ohms.
 * Le senseur Effet Hall US5881LUA est connecté comme suit:
     Pin 1: +5v
     Pin 2: Masse/GND
     Pin 3: +5V via une résistance pull-up de 10 KOhms
            MAIS AUSSI
            sur la PIN 2 d'Arduino (pour lecture du senseur)
 * Exemple de circuit, plan sur 
     http://mchobby.be/wiki/index.php?title=Senseur_à_Effet_Hall

 created 2012
 by Meurisse D. - http://www.MCHobby.be (vente de matériel et Kit)
 Licence BY-CC-SA 
 Mentionner explicitement "MCHobby vente de matériel et Kit" .

 */

const int ledPin = 13; 
const int hallPin = 2;

int sensorValue; 

void setup(){
  pinMode( ledPin, OUTPUT ); 
  pinMode( hallPin, INPUT );
}

void loop() {
  // lecture du capteur a Effet Hall
  sensorValue = digitalRead( hallPin );
  
  // senseurValue = HIGH sans aimant
  // senseurValue = LOW  quand POLE SUD aimant
  sensorValue = not( sensorValue );
  
  // Allumer eteindre la LED
  digitalWrite( ledPin, sensorValue );
}

Un tutoriel complet
Le wiki de MC Hobby reprend un tutoriel complet sur l'usage d'un senseur à Effet Hall IS5881LUA avec un Arduino. Vous y trouverez d'ailleurs de nombreux exemples de mise en situation.

Où Acheter
Le senseur à Effet Hall présenté dans cet article est disponible ici chez MC Hobby.
Les aimant Rare Earth que nous recommandons sont aussi disponibles ici chez MC Hobby.

2 commentaires:

  1. la resistance de pull up n'est pas nécessaire sur un ARDUINO UNO car elle existe dans l'ARDUINO, il suffit de l'initialiser au depart dans le setup

    RépondreSupprimer
  2. Bonsoir, je tombe sur votre article par hasard et celui-ci m’interpelle ! Mon fils à depuis qlqs jour un frein à mains commandé via un arduino et un effet hall qui est défectueux. Comment est-il possible de les tester. Je vous remercie d'avance.

    RépondreSupprimer