我编写了一个 python 代码(树莓派)来接收来自 ATM90E32AS 电能表 IC 的电压、电流和功率值。我正在使用 spidev 库与电表 IC 进行 SPI 通信。我初始化了两个字节数组(每个 4 字节宽)用于读取和写入电能表 IC,例如
writeBuffer = bytearray ([0x00,0x00,0x00,0x00])
readBuffer = bytearray ([0x00,0x00,0x00,0x00])
例如读取有源 R 相电压我初始化了寄存器值,如
VrRead_Reg = bytearray ([0x80, 0xD9])
我尝试使用以下子程序将上述值写入 IC 以读取 R 相电压
def Vr_read():
writeBuffer[0] = VrRead_Reg[0]
writeBuffer[1] = VrRead_Reg[1]
#print(writeBuffer)
readBuffer = spi.xfer(writeBuffer)
print("Vr:",readBuffer)
time.sleep(0.5)
我得到了像这样的输出
Vr: [255,255,89,64]
Vr: [255,255,89,170]
Vr: [255,255,89,220]
Vr: [255,255,89,1]
Vr: [255,255,89,10]
我测量了电源电压,它显示为 230V。然后我尝试将上述输出与测量的电压相匹配。这里第三个字节 89 对应于 230V。然后我用一个自耦变压器改变电压,这次 220V 第三个字节值变成 85,210V 变成 81,100V 变成 39,依此类推。
我不知道如何将 89 与 230V 以及其他字节联系起来。请帮助解码上述输出。