fbpixel
Etiquetas:

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.

module-sensor-hall-effect-ss49e-conversion Uso de un sensor de efecto Hall con Arduino

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.

arduino-module-sensor-hall-effect-ky-024_bb Uso de un sensor de efecto Hall con Arduino

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.

Fuentes