Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

Problems with Arduino of the INA226 module

$
0
0

Good morning,
I have a big problem with using the INA226 module.
I am attaching the connection diagram and Arduino code to see if you can help me.
My purpose is:
- read the voltage on the load with good precision (also OK with 0.01V) (ie not the voltage on the Rshunt but that of the user; that is, in my case, the LED Voltage + Resistance Voltage which would then be those useful for the projects)


- read the current passing through the load (with a precision of 0.0005A (ie 0.5mA)).


I have already read that to be precise what matters is the Shunt resistance and I have already ordered the one suitable for my case (ie a 10 mOhm), but my problem is precisely the programming code that does not return to me what Arduino does I look for.

From the Arduino Serial Monitor I read this:


I enclose:

- Arduino code

/*
    INA226 Bi-directional Current/Power Monitor. Simple Example.
    Read more: www.jarzebski.pl/.../cyfrowy-czujnik-pradu-mocy-ina226.html
    GIT: github.com/.../Arduino-INA226
    Web: http://www.jarzebski.pl
    (c) 2014 by Korneliusz Jarzebski
*/

#include <Wire.h>
#include <INA226.h>

INA226 ina;

void checkConfig()
{

  Serial.print("Max possible current:  ");
  Serial.print(ina.getMaxPossibleCurrent());
  Serial.println(" A");

  Serial.print("Max current:           ");
  Serial.print(ina.getMaxCurrent());
  Serial.println(" A");

  Serial.print("Max shunt voltage:     ");
  Serial.print(ina.getMaxShuntVoltage());
  Serial.println(" V");

  Serial.print("Max power:             ");
  Serial.print(ina.getMaxPower());
  Serial.println(" W");
}

void setup() 
{
  Serial.begin(115200);

  Serial.println("Initialize INA226");
  Serial.println("-----------------------------------------------");

  // Default INA226 address is 0x40
  ina.begin();

  // Configure INA226
  ina.configure(INA226_AVERAGES_1, INA226_BUS_CONV_TIME_1100US, INA226_SHUNT_CONV_TIME_1100US, INA226_MODE_SHUNT_BUS_CONT);

  // Calibrate INA226. Rshunt = 0.1 ohm, Max excepted current = 4A
  ina.calibrate(0.1, 4);

  // Display configuration
  checkConfig();

  Serial.println("-----------------------------------------------");
}

void loop()
{
  Serial.print("Bus voltage:   ");
  Serial.print(ina.readBusVoltage(), 5);
  Serial.println(" V");

  Serial.print("Bus power:     ");
  Serial.print(ina.readBusPower(), 5);
  Serial.println(" W");


  Serial.print("Shunt voltage: ");
  Serial.print(ina.readShuntVoltage(), 5);
  Serial.println(" V");

  Serial.print("Shunt current: ");
  Serial.print(ina.readShuntCurrent(), 5);
  Serial.println(" A");

  Serial.println("");
  delay(1000);
}

- Result on the Serial Monitor

Initialize INA226
-----------------------------------------------
Max possible current:  0.82 A
Max current:           0.82 A
Max shunt voltage:     0.08 V
Max power:             29.49 W
-----------------------------------------------
Bus voltage:   0.03500 V
Bus power:     0.00000 W
Shunt voltage: 0.00045 V
Shunt current: 0.00460 A

Bus voltage:   0.03625 V
Bus power:     0.00000 W
Shunt voltage: 0.00046 V
Shunt current: 0.00460 A

Bus voltage:   0.03375 V
Bus power:     0.00000 W
Shunt voltage: 0.00045 V
Shunt current: 0.00460 A

Bus voltage:   0.03625 V
Bus power:     0.00000 W
Shunt voltage: 0.00045 V
Shunt current: 0.00460 A

- image of the electrical connection diagram (Arduino USB power supply of the PC, while the LED is powered by an external StepDown about 5V)

Please help me.
Thanks


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>