最近我手头拿到了一块INA226芯片,想着赶紧把它焊到我自制的电路板上,顺便试试它对温度的适应性。给板子降温,我就把半导体制冷片连上,先把室温降到10℃以下,然后用9V电池给它供电。我还把两路ADC的数据(Vbus和VShunt)通过WiFi远程读取,每秒传一次。Python脚本跑了100组数据,结果发现这温度稳定性还真不错。 先看制冷开始的时候,板子从30℃一直降到10℃,记录到的数字是一路往上涨。VShunt从5281升到了5573,VBus也从2379升到了2500。这个时候ADC两边的数值都在往上涨,温差接近30%,但是误差才不到3%,这个表现真的是相当冷静了。 后来我把制冷关了,室温大概25℃,又跑了100组数据。发现VBus掉了35,VShunt掉了70,合计起来也就是1.5%的波动。这本来应该是正常的表现吧。但是接下来让我挺意外的是:就算把板子放在空气盒子里静止不动,两个数值还在匀速下滑,幅度逼近5%。这个明显跟室温没啥关系啊。于是我就把怀疑对象锁定在了那个9V电池上。 然后我换了一块满电的1200mAh充电电池来试试,先通过USB补电到4.2V。这次在室温下采集的时候发现:VBus稳如老狗一样稳,10分钟内才漂移了5个ADC count。可VShunt却开始像跳舞一样乱跳,最大偏差接近150个ADC count。开启制冷的时候电流通道剧烈抖动;关掉制冷的时候温度回升了,电流值又开始反向抬升。这下我明白了:不是INA226飘了,是分压电阻在热胀冷缩。 总的来说就是在30℃温差内(从-10℃到40℃),INA226这个ADC芯片稳得住了。两路ADC漂移不到3%,而分压电阻的热胀冷缩却能把误差拉到5%以上。看来INA226本身对温度的抗干扰能力真的很强,比那种分立元件强多了。只要保证供电稳定了,它完全可以在宽温环境里安心当“温度哨兵”。