Current measurement using INA219

Hello Team,
I want to read current value using INA219 module via I2C using Arduino Mega. I put a 1 K Ohm resistor in series with the V+ and V- of the INA219 module. I provided 3.3 to the V+ and as calculated by the formula V= IR, I should get the value of current as 3.3 mA. But I am getting value as 4.5 fluctuating. I am using Adafruit INA219 library for Arduino.
Has anyone got any idea of getting the correct result ? Would be really thankful for the support.

Hello @av4103,

Welcome to the DigiKey TechForm.

What value shunt resistor did you use?

The shunt is the mandatory resistor installed between V+ and V- of the INA219 module as shown in this schematic.

Out of curiosity, are you using a breakout board such as the Adafruit 904?

Please let us know if you were successful.

Best wishes,

APDahlen

Thanks for responding.
The shunt is already present and its value is 0.1 Ohm I guess. It is written on it as โ€œR100โ€. I am giving resistor as load and a known value of resistor so that I can match the theoretical and practical values through INA219.
No, I am not using any breakout board.

1 Like

Hello @av4103

A few thoughts for you:

  • You are measuring a small current. This is like trying to drive a car 3 MPH when the speedometer is optimized for 55 MPH.

  • PCB layout can impact the measurement. Specifically, the connection to the resistor. One solution is to use purpose built resistors such as this featuring secondary wires designed to be connected to the INA219.

Please let us know if you found a solution.

Sincerely,

Aaron

Yes you are correct, I agree on both of your points. When I tried to measure higher current the INA219 provided accurate reading for the Bus Voltage and the Current.
Also there is one observation, in case anyone trying to do proof of concept or want to check the module please ensure you are taking source from a battery or power supply. I gave 3.3 V from the Arduino to the V+ of INA219 module and my readings were not correct at all. Also If anyone reads this if your application is to read small current use โ€œina219.setCalibration_16V_400mA();โ€ rather than for โ€œ32V_1Aโ€. Note this is specifically for Arduino and the associated library. I think this is only solution and it worked for me.
Thanks @APDahlen for your response, time and efforts. Appreciate it mate, keep up the good work. Regards.

1 Like

You are very welcome, @av4103.

I would love to see your final project.

Perhaps you can include pictures.

Sincerely,

Aaron

Yeah sure !