Hall sensor, A3144
A south pole near the face pulls OUT low. It needs a pull-up and ignores the north pole.
- 3 pins
- 2 settings
- In 1 project
- In 1 lesson
The Hall sensor, A3144 in brief
What it is, and every setting the properties panel gives it.
The A3144 is Allegro’s unipolar Hall effect switch in a flat TO-92, the chip on the KY-003 module. Printed face toward you, its legs are VCC, GND and OUT, and it needs 4.5 to 24 volts, so VCC goes to 5 V on an Uno and to the 5 V (VIN) pin on an ESP32, while OUT, an open collector, goes to any digital pin set to INPUT_PULLUP, which on an ESP32 holds it at a safe 3.3 V. Mokxi models the sheet: OUT sinks up to 25 mA at about 175 mV and floats when off, only a south pole at the face operates it, and it switches on at 210 gauss and off 55 gauss lower. The magnet is a 10 by 3 mm N35 disc, about 230 gauss at 10 mm, so it switches on near 10.5 mm and off near 11.5; the slider is 0 to 40 mm, and a click turns the magnet around. Below 4.5 volts OUT is not driven at all, so on 3.3 V it does nothing. The classic mistake is no pull-up, and the next is the north pole. Temperature drift, switching times and off-axis fields are not modeled.
- Family
- Sensors
- Pins
- 3
- operate
- 210
- hysteresis
- 55
3 pins
Named as the editor names them, so a wire lands where you expect it.
How to use the A3144 Hall sensor with an Arduino
Printed face toward you, the legs are VCC, GND and OUT. Wire VCC to 5 V, GND to GND and OUT to pin 3, and set pin 3 to INPUT_PULLUP: OUT is an open collector that only pulls low, so without a pull-up the pin floats. In the kit circuit the LED on pin 13 lights while the magnet is close.
It reads LOW when the magnet is there. Drag the magnet in and it switches on at about 10.5 mm, and it does not let go until about 11.5 mm, the hysteresis that keeps it from chattering. Click the magnet to turn it around and nothing happens: the A3144 answers only a south pole at its printed face.
It needs 4.5 V or more, so on an ESP32 power VCC from the 5 V (VIN) pin; OUT only pulls low, so INPUT_PULLUP holds it at a safe 3.3 V. On the 3.3 V pin a bare A3144 does nothing.
const int SENSOR = 3;
const int LED_PIN = 13;
void setup() {
pinMode(SENSOR, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
bool magnet = digitalRead(SENSOR) == LOW;
digitalWrite(LED_PIN, magnet ? HIGH : LOW);
}What is true about the Hall sensor, A3144, here
In its help article’s own words: what the simulation gets right, and where it stops.
Modeled
Open collector. From the Allegro A3141-A3144 datasheet: OUT sinks up to 25 mA
at about 175 mV, and off it is high impedance. With no pull-up the pin floats.
South pole only. It is unipolar: a south pole at the printed face operates it, and a north pole does nothing however close it comes. That is the first thing a class tries.
Switch points and hysteresis. The sheet gives the A3144's operate point as 70 to 350 G and its hysteresis as 55 G typical. The part uses 210 G, the middle of that spread, so with the magnet below it switches on at about 10.5 mm and off at about 11.5 mm.
The magnet. A 10 mm by 3 mm N35 disc, face on, with the textbook on-axis field: about 3 kG at its face, 230 G at 10 mm and 90 G at 15 mm.
The supply. It has its own regulator and wants 4.5 V. On a 3.3 V board a bare A3144 does nothing here, as on the bench.
Not modeled
Switch points moving with temperature, rise and fall times (under 2 µs), and fields that are not along the axis.
From A3144 Hall effect sensor, in full.
See the Hall sensor, A3144 in a project
One built-in project uses it. It opens in the editor, already wired.
Where it turns up in a lesson
One lesson places it in its own circuit.
The boards it is shown on
This board has a built-in project with the Hall sensor, A3144 in it.
The rest of the bench
Every one of these is drawn and simulated the same way.
Wire up the Hall sensor, A3144
Open the editor and push it into the breadboard. It is free, and it runs on your own machine.