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.
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.