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.
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.
- It may be useful to use a different gain value as shown in this table derived from github.
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.
You are very welcome, @av4103.
I would love to see your final project.
Perhaps you can include pictures.
Sincerely,
Aaron
Yeah sure !