Étiquettes :

le capteur magnétique linéaire à effet Hall KY-024 réagit en présence d’un champ magnétique. Il est doté d’un potentiomètre permettant de régler la sensibilité du capteur et fournit deux sorties analogique et numérique.

Matériel

  • Ordinateur
  • Arduino UNO
  • Câble USB A Mâle/B Mâle
  • Module capteur à effet hall KY-024

Principe de fonctionnement

Le module KY-024 se compose d’un capteur linéaire à effet Hall SS49E et d’un comparateur différentiel double LM393, d’un potentiomètre BOCHEN 3296). Le comparateur couplé avec le potentiomètre permet de comparer la valeur du capteur avec une valeur seuil afin d’utiliser le capteur comme un capteur tout-ou-rien. Deux leds sont présentes sur le module. La led1 indique que le capteur est alimenté en tension et la led2 indique qu’un champ magnétique est détecté.

module-sensor-hall-effect-ss49e-conversion Utilisation d'un capteur à effet Hall avec Arduino

Schéma

Le capteur à effet hall a une sortie analogique et une sortie numérique. La sortie analogique renvoie une image de la mesure et la sortie numérique renvoi un état haut ou bas en fonction du seuil donné par le potentiomètre. Vous pouvez utiliser l’une ou l’autre selon votre application. Le module peu être alimenté par la sortie 5V du microcontrôleur.

arduino-module-sensor-hall-effect-ky-024_bb Utilisation d'un capteur à effet Hall avec Arduino

Code

Pour tester le capteur, nous allons lire la sortie digitale et afficher la sortie analogique. Nous utilisons donc les fonctions analogRead et digitalRead.

//initiation des pins
int ledPin = 13; //pin pour la LED
int digitalPin = 2; //pin pour le capteur
int analogPin = A0; //pin pour le capteur
int digitalVal;
int analogVal;


void setup()
{
  Serial.begin(9600); // vitesse de transmission
  pinMode(ledPin, OUTPUT); //la pin est en sortie
  pinMode(digitalPin, INPUT); //la pin est en entrée
}

void loop()
{
  digitalVal = digitalRead(digitalPin);
  if (digitalVal == HIGH) //condition "si" : la valeur numérique est au niveau haut
  {
    digitalWrite(ledPin, HIGH); //alors la led s'allume
  }
  else
  {
    digitalWrite(ledPin, LOW); // sinon la led s'éteint ou reste éteinte
  }
  analogVal = analogRead(analogPin);
  Serial.println(analogVal); //afficher la valeur analogique
  delay(100); //délai 100ms
}

Pour passer la valeur analogique an valeur physique, vous pouvez utiliser la fonction map()

//transforme la valeur de 0 à 1023 vers 0 à 5V
int volt=map(analogVal, 0, 1023, 0, 5);

//transforme la valeur lue en Gauss
int gss = map(volt, 1, 4, -1000, 1000);

Résultat

Si vous approchez et éloignez un aimant du capteur, vous devriez voir la LED s’allumer et s’éteindre et la valeur du capteur changer.

Applications

  • Réaliser un Gauss Mètre pour faire des mesures de champs magnétique.

Sources