请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:INA219 我在这里工作了3天、一直在努力从包含 INA219的 Adafruit 模块获得更好的读数。 虽然默认的 Adafruit 库(基本上都取自 INA219 TI 数据表)使器 件更准确、但我很难将其与非标准的关断电阻器值搭配使用。 我有多个这些模块、因此其中一个模块经过了修改、将 R100 (0.1欧姆)替换为 R010 (0.01欧姆)。 电阻器的实际测量值为0.02欧姆、但我在计算中尝试了0.01和0.02欧姆。
我的目标是8安培@ 24V
24V @ 4.5A INA219在 较高电流 端显示为24.9V @ 3.9A/4A <<<不太好
24V@ 4.9/5A INA219显示为 24.89V @4.5/4.6A
24V@ 1A INA219在 低端显示为24.89V @1.020Amps <<<非常好
您将看到库中的所有注释、我已对照 TI 的 INA219数据表对其进行了检查、看起来不错。
这是 Adafruit 库中的一个部分,我已根据已经在工作的部分添加,但修改后使用我的电阻器....
void AdafruIT_INA219::setCalibration_32V_16A (void) { //默认情况下、我们对输入电压使用非常大的范围、 //这可能不是最适合系统 的选择//不使用大量功率。 但是 、如果您想更改设置、下面显示了所有的计算//。 您还 需要//更改任何相关的寄存器设置,例如 //将 VBUS_MAX 设置为16V 而不是32V 等 // VBUS_MAX = 32V (假设32V、也可以设置为16V) // VSHUNT_MAX = 0.32 (假设增益8、320mV、也可以是0.16、0.08、0.04) // RSHUNT = 0.02 (电阻值、单位为欧姆) // 1。 确定可能的最大电流 // MaxPosible_I = VSHUNT_MAX / RSHUNT // 0.32/0.02 // MaxPosible_I = 16A // 2. 确定最大预期电流 // MaxExpected_i = 8.0a // 3. 计算 LSB 的可能范围(最小值= 15位、最大值= 12位) // MinimumLSB = MaxExpected_I/32767 // MinimumLSB = 0.000244 (244uA 每位) // MaximumLSB = MaxExpected_I/4096 // MaximumLSB = 0.001953 (1953uA 每位 )//最大值4。 在最小值和最大值之间选择一个 LSB //(最好是接近 MinLSB 的圆形数字) // CurrentLSB = 0.000300 (每位300uA) // 5。 计算校准寄存 器// Cal = trunc (0.04096/(Current_LSB * RSHUNT))// 0.04096/(0.000006)// trunc Cal = 6826 INA219_calValue = 6826;// 6。 计算功率 LSB // PowerLSB = 20 * CurrentLSB // PowerLSB = 0.006 (每位6mW) // 7。 计算溢出前的最大电流和分流电压值 // // Max_Current = Current_LSB * 32767 //溢出前的最大电流= 9.9301A // //如果 Max_current > Max_Possible_I,则 // Max_Current_Bear_Overflow = MaxPosible_I // else // Max_Current_Bear_Overflow = Max_Current_Current /<9.301A/ 溢出前的最大电流/</<9.91A //结束如果 // // Max_ShuntVoltage = Max_Current_Before_Overflow * RSHUNT // Max_ShuntVoltage = 0.198602V // //如果 Max_ShuntVoltage >= VSHUNT_MAX // Max_ShuntVoltage_Before_Overflow = VSHUNT_MAX // else // Max_ShuntVoltage >= 0.198602V // // Max_Overflow =最大值/</ShuntVoltage/< 0.602V 前溢 流/< 计算最大功率 //最大功率= Max_Current_Before_Overflow * VBUS_MAX //最大功率= 9.9301 * 32V //最大功率= 317.7632W // @ 24V 最大值= 9.9301 * 24V = 238.3224W //设置乘法器以转换原始电流/功率值 INA219_currentder = 3.33mA; //电流 LSB =每位300uA (1000/300 = 3.33) INA219_powerMultiplier_mW = 0.1666;//功率 LSB =每位6mW (1/6) //将校准寄存器设置为 在以上线性 WriteRegister (INA219_REG_CALIBRATION、INA219_calValue)上计算得出的'CalValue; //设置配置寄存器以考虑上述设置 uint16_t config = INA219_CONFIG_BVOLTAGERANGE_32V | INA219_CONFIG_GAIN_8_320MV | INA219_CONFIG_BADCRES_12位| INA219_CONFIG_SADCRES_12bit_1S_532MV | INA219 CONFIG_BADCRES_12位 | INA219寄存器| INA21_532US_CONFIG | INDB_CONFIG 寄存器| INA219 + INA219寄存器
提前感谢您为我提供的任何帮助。