Use power amplifier on a current meter project


I'm working on an Arduino based current meter. The project basically reads the voltage between a shunt resistor and calculates the current. But the Arduino cannot read the voltage correctly since it is too low.

I have found some tutorials using the AD623AN instrumentation amplifier to increase the voltage before the Arduino read.

I already have a D2822A power amplifier. It's possible to use it instead of the AD632AN to increase the voltage read?

The tutorials I have found:

Current measurement can be tricky... Even with a DMM it's tricky because you have to break the circuit to insert the meter.

How much gain do you need? Or, what's the voltage? How much voltage drop can you tolerate?

The power amplifier is not a good choice. It has fixed gain and the DC output is biased at half the supply voltage.

Is the shunt connected on the ground-side so you can read the voltage relative to ground? The Arduino (and a "normal amplifier") is ground referenced. Instrumentation amplifiers are differential so the shunt doesn't have to be in series with ground.

In most cases you can use a regular op-amp to make a single-ended or differential amplifier. Instrumentation amplifiers are designed for high-gain and low noise.

If you switch to the optional 1.1V ADC reference you can get 1mV resolution, so with the right shunt value you may not need amplification.

In some applications (power supplies for example) you can compensate for the shunt voltage drop with feedback to maintain constant-regulated output-voltage even when the current (and voltage across the shunt) varies. With that approach you can live with relatively high shunt voltages that are easy to measure.

...Higher currents are generally easier to measure than low currents, and depending on the application there are alternative methods such as a hall-effect current sensor or a current transformer for AC.

It would be more appropriate to use a device that is designed for the task. The INA219 is such a device and good up to about 25 volts if you want current, voltage and power all from one device without any design effort.

Need more specs about what you're trying to measure if you need more detailed help.

First, thanks for the replies.

I trying to analize arduino power consumption. I have been using a multimeter (Fluke 17B+) to measure the current consumed by an Arduino UNO (20~50mA). To do that I followed this tutorial:

Now, I want to substitute the multimeter with other Arduino. I'm want to do that so I can log the results and, maybe, plot a graph.

I'm using low resistence resistor (0,1 ohm or 0,01 ohms).

20mA across .1ohm gives 2mV.

You need a good instrumentation amplifier to get that to a usable voltage for the Arduino. If you have , say a 9v supply , you could afford to drop 1v or so . Using the internal analog reference in your Arduino , then you have sufficient voltage and don’t need amplification.

As mentioned you need to be careful with the Ov lines.

Most 'instrumentation amplifiers' have a limited common mode range, meaning you can't measure outside the supply voltage (and ground) of the opamp(s).
Meaning you can't have a shunt in the ground line, and you can't have a shunt higher than VCC of the opamp.

Use a current sensor designed for the task.
An INA219 can measure high-side, outside it's supply voltage (up to 26volt on a 3.3volt or 5volt supply).

Tell use WHAT you want to measure. You can't just connect a shunt superimposed to a random voltage to a circuit.
Unless that circuit is 'floating' (on battery power), like a DMM.

I trying to analize arduino power consumption. I have been using a multimeter (Fluke 17B+) to measure the current consumed by an Arduino UNO (20~50mA). To do that I followed this tutorial:


Why do you want to do that? :astonished:

The current consumption of the ATmega chip will not vary much. What will vary is when you use it to switch on devices such as indicator LEDs which may draw 20 mA or so each, but the program itself defines when this happens, so there is really no need to measure it. If you presume that all such devices are switched on at once, you can determine the maximum current that will be drawn.

Hardly any reason to attempt to measure it beyond that.

I'm working on a energy aware programming language called Céu:

The language detects the idle periods and puts the microcontroller in standby automatically. There is a paper that better describes this feature:

For my dissertation It would be nice to show the power consumption behavior.