El sensor magnético lineal de efecto Hall KY-024 reacciona en presencia de un campo magnético. Está equipado con un potenciómetro para ajustar la sensibilidad del sensor y proporciona dos salidas analógicas y digitales.
Material
- Ordenador
- Arduino UNO
- Cable USB A Macho/B Macho
- Módulo de sensor Hall KY-024
Principio de funcionamiento
El módulo KY-024 consta de un sensor lineal de efecto Hall SS49E y un comparador diferencial doble LM393, un potenciómetro BOCHEN 3296). El comparador acoplado al potenciómetro permite comparar el valor del sensor con un valor umbral para utilizar el sensor como un sensor de todo o nada. Hay dos leds en el módulo. El led1 indica que el sensor recibe tensión y el led2 indica que se detecta un campo magnético.
Esquema
El sensor Hall tiene una salida analógica y otra digital. La salida analógica devuelve una imagen de la medición y la salida digital devuelve un estado alto o bajo en función del umbral dado por el potenciómetro. Puede utilizar uno u otro dependiendo de su aplicación. El módulo puede ser alimentado por la salida de 5V del microcontrolador.
Código
Para probar el sensor, leeremos la salida digital y mostraremos la salida analógica. Para ello utilizamos las funciones analogRead y 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 }
Para pasar el valor analógico a un valor físico, puede utilizar la función 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);
Resultado
Si acercas y alejas un imán del sensor, deberías ver cómo se enciende y apaga el LED y cómo cambia el valor del sensor.
Aplicaciones
- Construye un medidor de Gauss para hacer mediciones de campos magnéticos.