fbpixel
Étiquettes :
3.9
(10)

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é.

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.

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

How useful was this post?

Click on a star to rate it!

Average rating 3.9 / 5. Vote count: 10

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?