Description
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.
Specifications
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 Voltage | 2.7V to 6.5V |
Sensitivity | 1.0 mV/G min., 1.4 mV/G typ., 1.75 mV/G max. |
Board Dimensions | 1.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 |
A0 | A0 |
G | GND |
+ | 5V |
D0 | 3 |

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);
Serial.begin(9600);
}
void loop ()
{
// Read the digital interface
digitalVal = digitalRead(digitalPin) ;
if (digitalVal == HIGH) // When magnetic field is present, Arduino LED is on
{
digitalWrite (led, HIGH);
}
else
{
digitalWrite (led, LOW);
}
// Read the analog interface
analogVal = analogRead(analogPin);
Serial.println(analogVal); // print analog value
delay(100);
}
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.
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.
sir what is relationship between voltage change and the corresponding distance travelled by magnet.Iam actually trying to use it for distance measurement.
hey,
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?
Hi, I took the values from a website selling the module because the original documentation in chinese is incomplete. These modules are made by several different manufacturers and sometimes the specifications are a bit different, I’m not sure if this is the case but I’ll update the values to reflect the ones on the datasheet. Thanks for pointing it out.