所需工具
- 树莓派,我是树莓派 zero w;
- 一根PT100热电阻,我买的是裸线,三线制;
- 一块 MAX 31865,如果针脚没焊,需要焊上去,并按照三线制把 2/3 Wire焊合,把24 3的24断开4 3焊合。
接线方式
根据这篇文章给出的接线方式,针脚对应关系如下:
- Pi 3V3 to sensor VIN
- Pi GND to sensor GND
- Pi MOSI to sensor SDI
- Pi MISO to sensor SDO
- Pi SCLK to sensor CLK
- Pi GPIO5 to sensor CS (or use any other free GPIO pin)
如果想接两个MAX 31865,根据树莓派针脚功能,可以
- Pi 3V3 to sensor VIN
- Pi GND to sensor GND
- Pi GPIO20 to sensor SDI
- Pi GPIO19 to sensor SDO
- Pi GPIO21 to sensor CLK
- Pi GPIO25 to sensor CS (or use any other free GPIO pin)
采集代码
从github上下载python版本的max31865通讯代码:max31865.py,做如下修改:
- self.writeRegister(0, 0xB2) 修改为 self.writeRegister(0, 0xB3), 即60Hz修改为50Hz;
- 根据max31865上面的电阻修改电阻值,我的是431Ω:R_REF = 431.0;
- 修改main里面的GPIO,main部分代码如下(其他部分只修改了1、2两处)。
if __name__ == "__main__":
import max31865
csPin = 5
misoPin = 9
mosiPin = 10
clkPin = 11
max1 = max31865.max31865(csPin,misoPin,mosiPin,clkPin)
csPin = 25
misoPin = 19
mosiPin = 20
clkPin = 21
max2 = max31865.max31865(csPin,misoPin,mosiPin,clkPin)
while(True):
tempC = max1.readTemp()
print("T1:\n")
print(tempC)
tempC = max2.readTemp()
print("T2:\n")
print(tempC)
time.sleep(1)
GPIO.cleanup()
测试运行
树莓派默认安装了python3,只需用FileZilla把max31865.py复制到树莓派上,然后在该文件所在路径下:
sudo python max31865.py,就可以看到结果了。
四线制
由于我用的 max31865 模块二、三线都需要改板子跳线,比较麻烦,精度也不如4线高,因此使用4线制似乎更好,不过 max31865 代码要相应修改:
寄存器第4位要从1改为0( # bit4: 3-wire select -> 1 (3 wire config)),即self.writeRegister(0, 0xB2) 修改为 self.writeRegister(0, 0xA3)。