KY-024 Linear Magnetic Hall module


The KY-024 Linear magnetic Hall sensor reacts in the presence of a magnetic field. It has a potentiometer to adjust the sensitivity of the sensor and it provides both analog and digital outputs.

The digital output acts as a switch that will turn on/off when a magnet is near, similar to the KY-003. On the other hand, the analog output can measure the polarity and relative strength of the magnetic field.



The KY-024 module consists of a 49E Linear Hall-Effect Sensor, a LM393 Dual Differential Comparator, a potentiomenter, two leds and six resistors. It's compatible with popular electronics platforms like Arduino, Raspberry Pi, Esp8266 and Teensy.


Operating Voltage2.7V to 6.5V
Sensitivity1.0 mV/G min., 1.4 mV/G typ., 1.75 mV/G max.
Board Dimensions1.5cm x 3.6cm [0.6in x 1.4in]

Arduino KY-024 Connection Diagram

Connect board's power line (+) and ground (G) to 5V and GND respectively. Connect the digital signal (D0) to pin 3 on the Arduino and the board's analog signal (A0) to pin A0 on the Arduino.

KY-024 Arduino connection diagramclick to enlarge

KY-024 Example Code

The following Arduino sketch will read values from both digital and analog interfaces on the KY-024.  The digital interface will turn on the Arduino's LED when a magnetic field is detected.

The analog interface starts at an initial value determined by the input voltage and the potentiometer, this value will increase or decrease depending on the intensity and polarity of the magnetic field.


int led = 13 ; // LED on arduino
int digitalPin = 3; // linear Hall magnetic sensor digital interface
int analogPin = A0; // linear Hall magnetic sensor analog interface
int digitalVal ; // digital readings
int analogVal; // analog readings

void setup ()
  pinMode (led, OUTPUT); 
  pinMode (digitalPin, INPUT); 
  //pinMode(analogPin, INPUT); 

void loop ()
  // Read the digital interface
  digitalVal = digitalRead(digitalPin) ; 
  if (digitalVal == HIGH) // When magnetic field is present, Arduino LED is on
    digitalWrite (led, HIGH);
    digitalWrite (led, LOW);
  // Read the analog interface
  analogVal = analogRead(analogPin);
  Serial.println(analogVal); // print analog value



Setting analog pin as input (line 11) is not necessary, the analogRead() function will automatically set the pin as analog input when used.

Use Tools > Serial Plotter on the Arduino IDE to visualize the changes on intensity and polarity of the magnetic field.

KY-024 arduino output on serial

Inline Feedbacks
View all comments
Peter Chubb
Peter Chubb
1 year ago

What is the threshold for the digital setting to recognize a magnetic field is present. The analog read shows variation but the digital led is not being triggered.

2 years ago

sir what is relationship between voltage change and the corresponding distance travelled by magnet.Iam actually trying to use it for distance measurement.

3 years ago


in data sheet page writen: 1.0 mV/G min., 1.4 mV/G typ., 1.75 mV/G max..
here u wrote 2.5 mV/G.

what is the right one?