Arduino Current Sensors: How to measure current from 100nA, to 3.2A, to 8.2A using three different types of sensor, simply by choosing the correct chip.

Arduino Current Sensors: By using an external chip you can:
  • Measure current from 100nA to 3.2A at 0.1% accracy.

  • Measure high currents in the presence of mains voltage.

If you want to measure current using an Arduino, there are several sensors you can choose from. You will either want to measure very high current for kW power devices (e.g a heater) or lower current for battery charge testing etc.

Arduino Current Sensor Methods

There are really only two measurement methods:

  • Voltage drop across a small resistor.
  • Magnetic hall effect current sensing.

The first method is suitable for low level currents as the voltage drop will be insignificant compared to the supplied voltage whereas the second method is suitable for very high currents (1A ~ ) ~50A ~ 200A.

You can get a fairly good reading at 1A but below this the inherent hall noise won't let you see the data very well (see the tests in the link below) - hence it is only very good for high current operation.

You could setup a simple low voltage system measuring the voltage drop across a 0.1R resistor and amplifying this using a precision opamp but it is more convenient to use the available devices (that do exactly the same thing for less effort)...

Voltage drop Arduino Current Sensors


The INA219 is a high side, voltage drop device that can measure up to 3.2A but can be configured for 10~15A (if you do some design work). On a breakout board it measures up to 3.2A within a 26V supply.

INA219 Breakout board

As a bonus it also measures the supply voltage a the high side of the circuit so you can calculate power usage easily.

You can select the voltage drop resistor but the standard fitted part is 0.1R giving a resolution of 100uA which is not too shabby!

The great thing about this part is that it drops into virtually any system providing an I2C interface for easy reading of the current flowing in your circuit.

Click here to goto the INA219 page.

Hall effect Arduino Current Sensors


As with most hall effect devices the output of the ACS758 is a voltage proportional to the magnetic field induced by the current, and here the value is 40mV per Ampere. That means you need and ADC to read the value output by this sensor.

This device can measure up to ±50A in the presence of 700Vrms. Calculation show that it can measure ~8kW in a 240Vrms system (~35A - the value is lower as the 50A is a peak value whereas the 35A is an RMS value). Anyway 8kW is quite a good achievement!

From the image below you can see it is expecting some heavy current from the chunky connector tabs!

Click here to goto the ACS758 page.


The ACS712 is similar to the ACS758 in that it is a hall effect device but it is designed lower current operation; ±5A, ±20A, ±30A (depending on the chip version used).

The advantage of using this device is that it is packaged in a tiny S08 case so its far smaller than the ACS758.

The reason you would use it in favour of the the INA219 is that the measurement path has a resistance of 1.2mOhms. If you use the standard INA219 you usually use the 0.1Ohm resistance for measurement.

It means the ACS712 does not drop any voltage (minuscule anyway) while measuring current and that means there is no power dissipated in the chip, so no heating - which could be important for encased designs etc.

The only problem will be resolution and magnetic noise inherent in hall effect devices. The theoretical smallest current measurement is 113mA.

Click here to goto the ACS712 page.


Have your say about what you just read! Leave me a comment in the box below.

Don’t see the comments box? Log in to your Facebook account, give Facebook consent, then return to this page and refresh it.

Privacy Policy | Contact | About Me

Site Map | Terms of Use