ESP8266使用INA226

芯片特性

  1. 测量电压范围:0~36V
  2. INA226最大采集稳定分流电压:81.92mV
  3. 测量电流范围取决于分压电阻的阻值和最大分压电压。一般来说,分压电阻越小,测量电流范围越大。例如,使用0.1R的分压电阻时,最大测量电流为817.2mA
  4. 默认分流电阻5mΩ,可采集的最大电流:81.92mV/5mΩ = 16.384A
  5. 芯片工作电压:2.7V~5.5V
  6. 默认IIC地址:0x40

工作原理

INA在工作中进行两次测量:分流电压和总线电压,然后根据校准寄存器值将这些测量值转换为电流,计算功率。
INA226是一款高精度的电流和电压监测器,它可以测量VBUS和VIN之间的电压差(Vsense)。
VBUS引脚是用来测量总线电压的,可以接到0~36V的范围内。
VIN+和VIN-引脚是用来测量分流电阻两端的电压的,它们之间的电压差不能超过±81.92mV
VBUS引脚接到VIN+或者VIN-都可以工作,但是接到VIN-会更准确一些,因为这样可以消除分流电阻两端的共模干扰。

Alert Pin

INA226有一个报警限值寄存器(07h),允许对报警引脚进行编程,Alert引脚为开漏输出,使用时需要接上拉电阻。可用5种报警功能种的任意一个:

  1. Shunt Voltage Over-Limit (SOL)
  2. Shunt Voltage Under-Limit (SUL)
  3. Bus Voltage Over-Limit (BOL)
  4. Bus Voltage Under-Limit (BUL)
  5. Power Over-Limit (POL)

INA226与INA219的区别

  1. INA226是一款高精度电流、电压和功率监测器,而INA219是一款高侧电流/功率检测器。
  2. INA226的总线电压范围036V,INA219的范围为026V
  3. INA226内置了一个2毫欧的电流检测电阻,而INA219需要外接一个电流检测电阻。
  4. INA226具有多达16个可编程地址,而INA219只有4个可编程地址。
  5. 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);
}

  • 1
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值