
Measuring voltage with Arduino is straightforward with a simple voltage divider, but measuring current needs a different approach — the ACS712 hall-effect sensor handles that by detecting the magnetic field a current creates rather than touching the circuit's conductors directly.
How it works
The original ACS712 is commonly available in ±5 A, ±20 A, and ±30 A ranges, with nominal sensitivities of about 185, 100, and 66 mV/A respectively. Current flows through an internal copper path and its magnetic field is measured with galvanic isolation inside the IC.
An important distinction
Unlike a non-invasive clamp meter that simply wraps around a wire from outside, the ACS712 is an in-line sensor: the circuit being measured has to be broken and routed through the module itself. That makes it better suited to a permanent installation — a home automation panel or a remote power-monitoring project — than a quick one-off measurement.
Wiring and reading it
The sensor's analog output pin connects to one of Arduino's analog input pins. At zero current, the output sits at a voltage offset around 2500mV (roughly half of a 5V supply); current in either direction shifts that voltage up or down from the offset.
The conversion math
Measure the zero-current offset on the actual board and use the sensitivity of the installed variant: approximately 100 mV/A for the 20 A part, not 185. Calibrate offset and gain, and sample over complete cycles when calculating AC RMS current. IC isolation alone does not make every low-cost breakout safe for mains; PCB spacing, terminals, enclosure, and installation still matter.
You can find ACS712 current sensor modules at Juthour Tech.
Leave your comment