主题中讨论的其他器件: SysConfig、 INA238、INA228、INA237
工具与软件:
我们使用 I2C 和 smbus2接口来监控来自 INA226寄存器的电流电源电压。
请看一下下面的脚本和命令、我们正在使用这些脚本和命令从 INA226寄存器中获取值、但与 wall 参数相比、我们获得的值太小。 请帮助确认我们使用 I2C/SMBUS2来获取和操作各种测量值的方式。
Python 脚本(SMBUS2)
导入 smbus2
导入时间
# INA226的 I2C 地址
地址= 0x40
#功率寄存器地址
POWER_REGISTER = 0x03
#功率 LSB 值(单位为瓦特)
power_lsb = 25e-6
#初始化 I2C 总线0
总线= smbus2.smbus (0)
DEF READ_POWER():
尝试:
RAW_POWER = BUS.READ_WORD_DATA (地址、POWER_REGISTER)
#必要时交换字节
RAW_POWER =((RAW_POWER 和0xFF)<< 8)|(RAW_POWER >> 8)
功率= RAW_POWER * POWER_lsb
回路功率
OSError 除外(e):
打印(f"读取功率时出错:{e}")
无返回
#监控电源随时间变化
DEF MONITOR_POWER():
正确时:
power = read_power ()
如果电源不是 None (无):
打印(f"电源:{power:.6F}W")
time.sleep (1)#每秒读取一次功率
如果__name__="__MAIN__":
MONITOR_POWER()
输出:
为什么 壁式功率计(22.3瓦)的功率读数存在显著差异?
谢谢!