Hall-Effect Current Sensor Calculator (Vout, I & ADC)

A Hall-effect current sensor outputs a voltage proportional to the current through it, centred on a zero-current offset — usually half the supply for ratiometric parts. This Hall-effect current sensor calculator converts current to output voltage and back, and gives the ADC reading and current resolution for a microcontroller; see how the ACS712 Hall-effect current sensor works.

mV/A
bits
calculated
calculated
calculated
Type in any field to change it. Press × on a value to calculate that field instead.

How to use the Hall-effect current sensor calculator

Enter the sensor’s zero-current output (Vcc/2 for ratiometric sensors such as the ACS712), its sensitivity in mV/A, the current and your ADC’s reference voltage and resolution. You get the sensor output voltage, the ADC reading you should expect and the current represented by one ADC count. To go from a measured voltage to current, enter the voltage in the output field and leave the current blank. Negative current gives an output below the offset.

Hall-effect current sensor formulas

Vout = Vq + S × I  ·  I = (Vout − Vq) ÷ S

ADC counts = Vout ÷ Vref × 2N  ·  resolution = Vref ÷ (2N × S)

Worked example

ACS712 ±5 A (185 mV/A) on a 5 V supply, measuring 2 A with a 10-bit ADC and a 5 V reference:

  • Vout = 2.5 + 0.185 × 2 = 2.87 V
  • ADC reading = 2.87 ÷ 5 × 1024 = 587.8 counts
  • One count = 5 ÷ (1024 × 0.185) = 26.4 mA

ACS712 output range and resolution (5 V supply)

Sensor Sensitivity Output at −full scale Output at +full scale 10-bit resolution 12-bit resolution
ACS712 ±5 A 185 mV/A 1.575 V 3.425 V 26.4 mA 6.6 mA
ACS712 ±20 A 100 mV/A 0.500 V 4.500 V 48.8 mA 12.2 mA
ACS712 ±30 A 66 mV/A 0.520 V 4.480 V 74.0 mA 18.5 mA

Practical notes

  • Hall sensors are isolated — the current path is separate from the signal side — which makes them safer than a shunt resistor on high-side or mains circuits. Read how a Hall-effect sensor works.
  • Zero the offset in firmware at start-up with no current flowing; offset drift with temperature is often the largest error at low current.
  • Keep strong magnetic fields and high-current wires away from the sensor package; they shift the reading.
  • For AC current, sample fast and compute RMS from the samples after subtracting the offset.

Frequently asked questions

How do I convert ACS712 output voltage to current?

I = (Vout − Vq) ÷ S. With a 5 V supply Vq ≈ 2.5 V, so the ±5 A version (185 mV/A) reading 2.87 V means (2.87 − 2.5) ÷ 0.185 = 2.0 A.

What are the ACS712 sensitivities?

185 mV/A for the ±5 A version, 100 mV/A for ±20 A and 66 mV/A for ±30 A, all at a 5 V supply. The output is ratiometric, so the offset and sensitivity scale with the supply voltage.

How do I get the current from an Arduino ADC reading?

Voltage = reading × Vref ÷ 1024 for a 10-bit ADC, then I = (voltage − Vq) ÷ sensitivity. Calibrate Vq by reading the sensor with no current flowing.

Why is my reading noisy?

With a 10-bit ADC one count is about 26 mA on the 5 A sensor, and the sensor itself has noise of a few tens of mA. Average many samples, add the recommended filter capacitor, and use the smallest range that covers your current.

Embed this calculator

Free to use on your website or blog. Copy this code: