Skip to content
Electrical / Current

ACS712 Current Sensor Module

Measures AC or DC current for energy monitoring projects.

The ACS712 is a Hall-effect based linear current sensor IC that measures AC or DC current by sensing the magnetic field generated as current flows through an internal low-resistance conductor, with the input and output sides fully isolated. It outputs a simple analog voltage proportional to current, centered at half of the supply voltage, making it a popular building block for energy monitors, overcurrent protection circuits, and battery/motor current logging in maker projects.

Specifications

Sensor typeHall-effect linear current sensor with internal galvanic isolation
Operating voltage5V DC
OutputAnalog voltage centered at Vcc/2 (~2.5V at 5V), scaling up or down with current direction
Current range variants±5A, ±20A, or ±30A, selected by the specific ACS712 part number
Sensitivity185 mV/A (5A version), 100 mV/A (20A version), 66 mV/A (30A version)
Bandwidth80 kHz typical, suitable for both AC and DC current sensing
Internal resistance~1.2 mΩ conductor path, minimal voltage drop and power loss
InterfaceAnalog output — read directly with an ADC / analogRead()

Pinout

PinNameDescription
1VCCPower, 5V DC
2GNDGround
3OUTAnalog output voltage, proportional to sensed current
4IP+Current path input terminal — wire in series with the load/source being measured
5IP-Current path output terminal — completes the series current loop

IP+ and IP- carry the actual load current and must be wired in series with the circuit being measured (not in parallel like a voltmeter); VCC/GND/OUT are the separate low-power signal side. Because the output rides on a Vcc/2 offset, most projects calibrate the zero-current reading in software before scaling by the sensitivity constant for their specific part variant.

Variants

Pick the ACS712 current range based on your expected peak current — oversizing the range (e.g. using the 30A part to measure a 500mA load) sacrifices resolution. If you'd rather skip analog calibration entirely and want power (watts) readings too, the INA219 is a solid I2C alternative.

VariantTemp rangeHum rangeAccuracyProtocolPrice
ACS712-05B (±5A)~$1-3
ACS712-20A (±20A)~$1-3
ACS712-30A (±30A)~$1-3
INA219~$2-5

Board Integration

Wiring

Component pinBoard pinNote
VCC5V
GNDGND
OUTA0Analog voltage output, centered at ~2.5V with no current flowing
IP+ / IP-In series with the load — not connected to the ArduinoThe current to be measured flows through these two screw terminals, in series with the load's supply wire

Code

C++

Notes

ACS712 comes in 5A, 20A, and 30A variants with different sensitivity constants — check which one you have and update SENSITIVITY accordingly, or every reading will be wrong by a fixed ratio. The 2.5V zero-point drifts slightly per unit; for accurate work, measure your specific module's output with 0A flowing and use that instead of the datasheet value.