Current monitor

Low cost 0-30A current monitor

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.
Current Status:   Complete
4th July 2015
Creative Commons Attribution 3.0 Unported License


Presented here is a very simple circuit that measures a DC current of 0-30A and provides a scaled output suitable for either direct monitoring or sampling via an ADC. It uses the readily available Allegro Microsystems ACS713 hall effect linear current sensor, together with a rail to rail op-amp and linear regulator to provide an easy to implement solution on a small PCB. It can be used as a low bandwidth (<80 KHz) current sensor with an oscilloscope.

Circuit description

The ACS713 is available in two variants, the ACS713ELCTR-20 (20 Amp) and the ACS713ELCTR-30 A(30 Amp), the design will accept either, my prototype design used the 30A version. A few component values would need to be tweaked for the scaled output, more on this later. Depending on the part chosen, the resolution changes from 185mV/Amp for the 20A part to 133mV/Amp for the 30A part. To make it easier to work with, the 0.1x Vcc offset of the device is removed, to provide a 0-5V full scale range, additionally, an additional amplifier can be used to provide a 1V=1A or 1V=2A range, for easy connection to an oscilloscope or DMM.
The design incorporates a simple +5V linear regulator and the measured power consumption was 14mA at 5V.

The schematic is shown here, double click for full size.

Current_sensor_sch-thumbs   The single sided PCB is shown here Current_sensor_pcb-thumbs

The Microchip MCP602 op-amp was chosen as it is a single supply, rail to rail amplifier, with low power consumption. The offset voltage is reasonable, just 2mV. For the 1V/1A the offset increases to 10.8mV (5.4x2mV).

With no current flowing through the sense circuit, I measured an offset of 25mV. 11mV of this will be from the MCP602 1V/A amplifier, 2mV from the difference amplifier and the rest will come from the ACS713 and a small contribution from the 1% resistors.

The bandwidth of the circuit can be changed. Reducing the bandwidth, from the default of 80 KHz, increases the resolution from 297mA to 108mA, at 2 KHz. I currently use the full 80 KHz bandwidth.
Using the scaled 1V/A range, I measured the power-up current surge of one of my Amiga computers using my oscilloscope
A600_+5V_current_powerupThe current peaks at 5V/Amps before dropping back to 2 Amps after 6ms.

On the schematic I have provided alternative  component values to change the bandwidth and the scaling. If you want a custom scaling, refer to the ACS 713 datasheet.

This design is used as part of my Arduino data-logger system, used to monitor the charging current of my solar system.


The schematic and PCB in Eagle CAD format are available here

Updated 27 September 2020