Overview

The ACS712 is a fully integrated Hall-effect linear current sensor IC manufactured by Allegro MicroSystems. It measures both AC and DC current by sensing the magnetic field generated when current flows through an internal 1.2 mΩ1.2\text{ m}\Omega copper conduction path.

Because the current path is electrically isolated from the sensor electronics, the ACS712 provides 2.1 kVRMS2.1\text{ kV}_{\text{RMS}} galvanic isolation, making it safe for measuring high-voltage AC loads (such as household appliances or motors) with low-voltage microcontrollers.

Quick reference

Operating Voltage (VCC)4.5 V to 5.5 V DC (5.0 V nominal)
Output Offset VoltageVCC/2V_{CC} / 2 (2.50 V2.50\text{ V} at 0 Amperes current)
Galvanic Isolation Voltage2.1 kVRMS2.1\text{ kV}_{\text{RMS}} (50/60 Hz for 1 minute)
Conductor Resistance1.2 mΩ1.2\text{ m}\Omega (ultra-low power loss)
Bandwidth80 kHz
Variant Current Ratings5 A variant (185 mV/A), 20 A variant (100 mV/A), 30 A variant (66 mV/A)
Output TypeRatiometric Analog Voltage (OUT)

Variant Sensitivity Comparison

Variant Part NumberMax Current RangeSensitivity (SS)Zero Current Output (VOUT,0V_{OUT,0})
ACS712-05B±5 A\pm 5\text{ A}185 mV / A185\text{ mV / A}2.50 V2.50\text{ V} (VCC/2V_{CC} / 2)
ACS712-20A±20 A\pm 20\text{ A}100 mV / A100\text{ mV / A}2.50 V2.50\text{ V} (VCC/2V_{CC} / 2)
ACS712-30A±30 A\pm 30\text{ A}66 mV / A66\text{ mV / A}2.50 V2.50\text{ V} (VCC/2V_{CC} / 2)

Pinout

Standard Breakout Board Header & Screw Terminal

Pin / TerminalNameTypeDescription
Screw Terminal 1IP+High-Current InputConductor input (in series with AC/DC load)
Screw Terminal 2IP-High-Current OutputConductor output (to load)
Header Pin 1VCCPowerSupply voltage (+4.5 V to +5.5 V DC)
Header Pin 2GNDPowerGround (0 V)
Header Pin 3OUTAnalog OutputAnalog output voltage proportional to current

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVCCV_{CC}4.55.05.5VDC
Supply CurrentICCI_{CC}1013mAVCC=5.0 VV_{CC} = 5.0\text{ V}
Sensitivity ErrorESENSE_{SENS}±1.5\pm 1.5%TA=25CT_A = 25^\circ\text{C}
Total Output ErrorETOTE_{TOT}±1.5\pm 1.5±4.0\pm 4.0%IP=IP,maxI_{P} = I_{P,max}
Response Timetresponset_{response}5µsOutput rise time to 90%
Frequency BandwidthBWBW80kHzCFILTER=1 nFC_{FILTER} = 1\text{ nF}

Current Measurement Formulas

DC Current Formula

IDC (Amperes)=VOUT (in mV)2500 mVSensitivity S (in mV/A)I_{DC}\text{ (Amperes)} = \frac{V_{OUT}\text{ (in mV)} - 2500\text{ mV}}{\text{Sensitivity } S\text{ (in mV/A)}}

Example for ACS712-05B (185 mV/A185\text{ mV/A}) with a 2.87 V2.87\text{ V} ADC output reading:

IDC=2870 mV2500 mV185 mV/A=370185=+2.0 AI_{DC} = \frac{2870\text{ mV} - 2500\text{ mV}}{185\text{ mV/A}} = \frac{370}{185} = +2.0\text{ A}

AC RMS Current Formula

For 50/60 Hz AC current, sample VOUTV_{OUT} over several full AC wave cycles (100 ms\sim 100\text{ ms}), find the peak-to-peak voltage (VppV_{pp} in mV), and calculate RMS current:

IRMS=(Vpp (in mV)22)÷Sensitivity S (in mV/A)I_{RMS} = \left(\frac{V_{pp}\text{ (in mV)}}{2 \sqrt{2}}\right) \div \text{Sensitivity } S\text{ (in mV/A)}

Wiring

text
           [ ACS712 Screw Terminal ]
           │                       │
     AC/DC Power (+ Line)       AC/DC Load (+ Line)
ACS712 Breakout PinMicrocontroller (Arduino Uno / ESP32)
VCC5V
GNDGND
OUTAnalog Input Pin A0 (or ADC with voltage divider for 3.3V MCUs)
Warning

High Voltage Safety & 3.3V ADC Compatibility:

  • Mains AC Safety: Although the ACS712 IC provides 2.1 kV2.1\text{ kV} isolation, cheap breakout PCBs may have insufficient creepage/clearance distance between high-voltage screw terminals and logic header pins. Exercise extreme caution when measuring 110V/230V mains voltage!
  • 3.3V Microcontrollers (ESP32/Raspberry Pi): The ACS712 outputs up to 4.5 V4.5\text{ V} when measuring positive current. Use a 10 kΩ/20 kΩ10\text{ k}\Omega / 20\text{ k}\Omega resistor voltage divider on OUT before connecting to 3.3V ADC inputs.

Common mistakes

  • External Magnetic Interference: Hall-effect sensors are sensitive to external magnetic fields. Keep motors, transformers, and heavy inductors away from the ACS712 package.
  • Powering from 3.3V: Operating the ACS712 on 3.3V shifts the zero-current baseline away from 2.5 V2.5\text{ V} and reduces sensitivity non-linearly. Always power with 5.0 V DC.
  • Measuring small currents with 20A/30A variants: Measuring <500 mA< 500\text{ mA} with an ACS712-30A produces tiny voltage changes (33 mV33\text{ mV} for 0.5A) that get lost in ADC noise. Use the 5A variant or an INA219 for low-current applications.

Notes

  • Solder jumper / capacitor on the FILTER pin allows adjusting the high-frequency cutoff to reduce output noise.

Assets & downloads