当前位置:   article > 正文

max31865模块 PT100测温 PT1000测温 接线说明要点说明 使用说明 程序 单片机_max31865中文手册

max31865中文手册

国内资料少,找到个非常详细的资料:
https://learn.adafruit.com/adafruit-max31865-rtd-pt100-amplifier?view=all

最后成果(STM32F103C8T6):
在这里插入图片描述

要点1 参考电阻

一般PT100选400欧姆参考电阻,但是板子上给的是4300,也就是430欧姆。程序里需要设置参考电阻为430。为啥选4300呢,因为我猜400欧姆没有精致电阻生产。
#define REF_RES 430

 temps = temps / 32768.0 * REF_RES;        /* Here is the rtd R value; */
  • 1

在这里插入图片描述

要点2 接线

板子上有三个位置用于设置线的。
在这里插入图片描述
在这里插入图片描述
四线最后这样:
在这里插入图片描述
三线这样:
在这里插入图片描述

要点3 体会

遇到问题一定要好好找找设计这块板子的资料,不然自己瞎转悠。
PT100电阻本身就是一个随温度变化的电阻,可以直接用万用表测其电阻。

要点4 max31865模块重要细节

SPI对其寄存器进行读写,寄存器如下图。
配置寄存器,想读就读0x00,想写就写0x80。
转化后的RTD数值存放于0x01和0x02这2个8位寄存器。
可以设置错误报警门限上限和下限,通俗来说,比如一个PT100能测温范围是-200℃到420℃,用户想设置下限报警值为-180℃,上限报警值为400℃,那么当max31865转换RTD后,会将0x01和0x02寄存器结果与上限值和下限值比较,如果不在设置的范围,就会产生错误标志。
错误标志存在0x07寄存器中。
在这里插入图片描述
读取温度过程:
(1)读取0x07寄存器,看是不是等于0x00,即是说无错误标志。有错误标志时,0x07寄存器里面某个值就是1。
在这里插入图片描述
错误标志可以手动清除,但如果没实际解决问题,下次检测这个标志还是会被模块拉起。

//清除错误
void maxim_clear_fault_status(void)
{
 uint8_t uch_config;
 
  uch_config=MAX31865_SB_Read(0x00);
  uch_config&=0xd3;
  uch_config|=0x02;
  MAX31865_SB_Write(0x80, uch_config);  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(2)如果能过错误检测,就开始下面的过程。向0x80写入配置,这里写入的是说进行一次转换(One_Shot_Conversion ),然后等待DRDY 引脚变成低电平(意味转换结束)。然后读取0x01和0x02这2个8位寄存器,0x02的最低位装的是错没错的标志,没错的话就可以利用0x01和0x02这2个8位寄存器合成电阻数值。

MAX31865_SB_Write( 0x80, ON + One_Shot_Conversion + RTD_3wire + Filter_50Hz );  
while ( DRDY == 1 );                                                                       
auch_rtd[0]	= MAX31865_SB_Read( 0x01 );                                     
auch_rtd[1]	= MAX31865_SB_Read( 0x02 );                                     
if ( (auch_rtd[1] & 0x01) == 0x01 )                                             
{
}else{
	tempture = (int)Get_tempture();                                              
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

(3)合成电阻

data_temp	= (dtemp[0] << 8) | dtemp[1];/* Get 15Bit DATA; */ 
data_temp	>>= 1;/* Get 15Bit DATA; */ 

temps = temps / 32768.0 * REF_RES;        /* Here is the rtd R value; */
  • 1
  • 2
  • 3
  • 4

(4)PT100电阻变成温度
这个就各显神通了,有各种各样的转换公式。

程序

读取PT100和PT1000:
在这里插入图片描述
代码:https://github.com/xddun/blog_code_search

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/355785
推荐阅读
相关标签
  

闽ICP备14008679号