芯片特性
- 测量电压范围:0~36V
- INA226最大采集稳定分流电压:81.92mV
- 测量电流范围取决于分压电阻的阻值和最大分压电压。一般来说,分压电阻越小,测量电流范围越大。例如,使用0.1R的分压电阻时,最大测量电流为817.2mA
- 默认分流电阻5mΩ,可采集的最大电流:81.92mV/5mΩ = 16.384A
- 芯片工作电压:2.7V~5.5V
- 默认IIC地址:0x40
工作原理
INA在工作中进行两次测量:分流电压和总线电压,然后根据校准寄存器值将这些测量值转换为电流,计算功率。
INA226是一款高精度的电流和电压监测器,它可以测量VBUS和VIN之间的电压差(Vsense)。
VBUS引脚是用来测量总线电压的,可以接到0~36V的范围内。
VIN+和VIN-引脚是用来测量分流电阻两端的电压的,它们之间的电压差不能超过±81.92mV。
VBUS引脚接到VIN+或者VIN-都可以工作,但是接到VIN-会更准确一些,因为这样可以消除分流电阻两端的共模干扰。
Alert Pin
INA226有一个报警限值寄存器(07h),允许对报警引脚进行编程,Alert引脚为开漏输出,使用时需要接上拉电阻。可用5种报警功能种的任意一个:
- Shunt Voltage Over-Limit (SOL)
- Shunt Voltage Under-Limit (SUL)
- Bus Voltage Over-Limit (BOL)
- Bus Voltage Under-Limit (BUL)
- Power Over-Limit (POL)
INA226与INA219的区别
- INA226是一款高精度电流、电压和功率监测器,而INA219是一款高侧电流/功率检测器。
- INA226的总线电压范围036V,INA219的范围为026V
- INA226内置了一个2毫欧的电流检测电阻,而INA219需要外接一个电流检测电阻。
- INA226具有多达16个可编程地址,而INA219只有4个可编程地址。
- INA226的精度和分辨率都比INA219高
测试程序
//INA226库: https://github.com/RobTillaart/INA226
#include "INA226.h"
#include "Wire.h"
INA226 INA(0x40); //I2C地址
//INA226 INA(0x44);
//电压电流采样
void VA(){
float V = INA.getBusVoltage(); //VBUS电压V
float mA = INA.getCurrent_mA(); //采样电阻电流mA
float mW = INA.getPower_mW(); //功率
float mV = INA.getShuntVoltage_mV(); //采样电阻分压
Serial.print( V); Serial.print(" V \t");
Serial.print(mA); Serial.print(" mA \t");
Serial.print(mW); Serial.print(" mW \t");
Serial.print(mV); Serial.print(" mV \t");
Serial.println();
}
//电压电流采样2
void VA2(){
float V = INA.getBusVoltage(); //VBUS电压V
float mV = INA.getShuntVoltage_mV(); //采样电阻分压
float A = mV/5; //采样电阻分压/采样电阻值 = 电流
Serial.print( V); Serial.print(" V \t");
Serial.print(mV); Serial.print(" mV \t");
Serial.print( A, 4); Serial.print(" A \t");
Serial.println();
}
void setup(){
Serial.begin(115200);
Wire.begin();
INA.setMaxCurrentShunt(8, 0.01); //最大电流A,分流电阻值R
}
void loop(){
VA2();
delay(1000);
}