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.