#include <Wire.h>
#include <Adafruit_INA219.h>
Adafruit_INA219 ina219;
void setup()
{
Serial.begin(9600);
while (!Serial) {
// will pause Zero, Leonardo, etc until serial console opens
delay(1);
}
uint32_t currentFrequency;
//Serial.print("Measuring voltage and current with INA219 ...");
// Initialize the INA219.
// By default the initialization will use the largest range (32V, 2A). However
// you can call a setCalibration function to change this range (see comments).
//if (! ina219.begin()) {
//Serial.println("Failed to find INA219 chip");
//while (1) { delay(10); }
//}
// To use a slightly lower 32V, 1A range (higher precision on amps):
//ina219.setCalibration_32V_1A();
// Or to use a lower 16V, 400mA range (higher precision on volts and amps):
//ina219.setCalibration_16V_400mA();
//Serial.print("Measuring voltage and current with INA219 ...");
//Serial.println();
Serial.print("Bus Voltage(V), Shunt Voltage(mV), Load Voltage(V), Current(mA), Power(mW)");
Serial.println();
}
void loop()
{
float busvoltage = 0;
float shuntvoltage = 0;
float loadvoltage = 0;
int current_mA = 0;
float power_mW = 0;
busvoltage = ina219.getBusVoltage_V();
shuntvoltage = ina219.getShuntVoltage_mV();
loadvoltage = busvoltage + (shuntvoltage / 1000);
current_mA = ina219.getCurrent_mA();
power_mW = ina219.getPower_mW();
Serial.print(" "); Serial.print(busvoltage);Serial.print(","); Serial.print("V");Serial.print(",");
Serial.print(" "); Serial.print(shuntvoltage); Serial.print(","); Serial.print(" mV"); Serial.print(",");
Serial.print(" "); Serial.print(loadvoltage); Serial.print(","); Serial.print("V"); Serial.print(",");
Serial.print(" "); Serial.print(current_mA); Serial.print(","); Serial.print(" mA"); Serial.print(",");
Serial.print(" "); Serial.print(power_mW); Serial.print(","); Serial.println(" mW");
//Serial.println();
delay(5000);
}