树莓派 zero 通过 max31865 连接 PT100 热电阻 测量温度

本文介绍如何使用树莓派与MAX31865模块进行PT100温度传感器的数据采集,包括所需工具、接线方式及Python代码实现。文中详细解释了针对不同配置的接线指南,并提供了基于50Hz采样频率的Python示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所需工具

  1. 树莓派,我是树莓派 zero w;
  2. 一根PT100热电阻,我买的是裸线,三线制
  3. 一块 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,做如下修改:

  1. self.writeRegister(0, 0xB2)  修改为 self.writeRegister(0, 0xB3), 即60Hz修改为50Hz;
  2. 根据max31865上面的电阻修改电阻值,我的是431Ω:R_REF = 431.0;
  3. 修改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)。

 

根据提供的代码和资料,max31865是一个用于读取PT100热电阻温度的模块。在使用max31865模块的时候,可以选择二线、三线或四线制来连接PT100热电阻。引用中提到,二线制连接需要修改板子跳线,而精度也不如四线制高,因此建议使用四线制来连接。然后需要根据四线制的连接方式修改max31865的代码。引用中提供了连接PT100热电阻max31865模块所需的工具和连接方式。引用中展示了一个max31865.c的示例代码,用于初始化max31865模块和读取温度值。根据这段示例代码,通过SPI通信来读取max31865模块的寄存器和写入寄存器。其中Get_tempture()函数用于读取温度值并进行转换。通过线性拟合的方式将转换得到的电阻值转化为温度值。需要注意的是,这里给出的线性拟合方式可能存在一定的误差,如果需要提高精度,则需要进行电阻和温度的标定。综上所述,可以通过四线制连接PT100热电阻max31865模块,并使用提供的示例代码来读取温度值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [树莓派 zero 通过 max31865 连接 PT100 热电阻 测量温度](https://blog.youkuaiyun.com/xhydongda/article/details/108996873)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [STM32CubeMX-配置SPI驱动MAX31865读取铂电阻温度](https://blog.youkuaiyun.com/qq_45396672/article/details/122058786)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值