首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >树莓派上的Max31865设置

树莓派上的Max31865设置
EN

Stack Overflow用户
提问于 2017-07-06 00:50:42
回答 2查看 4.6K关注 0票数 0

我对编程非常陌生。我正在尝试通过我的树莓派3读取PT100 rtd。我读到我需要Max31865 RTD放大器来正确读取数据,因为电阻太小了。我相当确定我把它正确地插上了。我使用的是这段代码,只是稍微编辑了一下。https://github.com/steve71/MAX31865

到目前为止,我得到了两个不同的输出,但它似乎与我正在更改的任何内容(主要是与readTemp相关的字节)没有关联,因为我已经运行了两次相同的代码,并获得了这两个输出。输出结果如下:

代码语言:javascript
运行
复制
config register byte: ff
RTD ADC Code: 32767
PT100 Resistance: 429.986877 ohms
Straight Line Approx. Temp: 767.968750 degC
Callendar-Van Dusen Temp (degC > 0): 988.792111 degC
high fault threshold: 32767
low fault threshold: 32767

代码语言:javascript
运行
复制
config register byte: 08
RTD ADC Code: 0
PT100 Resistance: 0.000000 ohms
Straight Line Approx. Temp: -256.000000 degC
Callendar-Van Dusen Temp (degC > 0): -246.861024 degC
high fault threshold: 0
low fault threshold: 0

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-07-06 04:16:25

我现在也在处理同样的问题。您使用的Pt100是三线制还是四线制?

我修复了这个问题,方法是将原始代码(https://github.com/steve71/MAX31865)第78行的正确配置状态寄存器设置为0xA2

代码语言:javascript
运行
复制
self.writeRegister(0, 0xA2)

我使用的是四线制,所以我不得不将bit4从1(三线制)改为0(二线制或四线制)

代码语言:javascript
运行
复制
0xb10100010

在这之后,我得到了这个作为输出

代码语言:javascript
运行
复制
config register byte: 80
RTD ADC Code: 8333
PT100 Resistance: 101.721191 ohms
Straight Line Approx. Temp: 4.406250 degC
Callendar-Van Dusen Temp (degC > 0): 4.406808 degC
high fault threshold: 32767
low fault threshold: 0

兄弟..。我房间里很冷,不是吗?为了解决这个问题,我不得不将线路170中的参考电阻更改为430欧姆

代码语言:javascript
运行
复制
R_REF = 430.0 # Reference Resistor

这很奇怪,因为我红了很多次,有一个400欧姆的电阻安装在这个设备上作为参考。事实上,SMD电阻上有一个3位数的代码"431“,意思是430欧姆。嗯..。

但现在我在这里又好又暖和

代码语言:javascript
运行
复制
Callendar-Van Dusen Temp (degC > 0): 25.091629 degC

诚挚的问候

票数 2
EN

Stack Overflow用户

发布于 2017-11-23 04:45:32

你把这事解决了吗?如果您没有这样做,下面的python类方法适用于我。我记得我在接线力终端时遇到了一些问题,从内存中看,对于双线,你必须桥接两个力终端。

代码语言:javascript
运行
复制
def _take_Resistance_Reading(self):
    msg = '%s: taking resistance reading...' % self.Name
    try:
        self.Logger.debug(msg + 'entered method take_resistance_Reading()')
        with self._RLock:
            reg = self.spi.readbytes(9)
            del reg[0]                      # delete 0th dummy data
            self.Logger.debug("%s: register values: %s", self.Name, reg)           
            RTDdata = reg[1] << 8 | reg[2]
            self.Logger.debug("%s: RTD data: %s", self.Name, hex(RTDdata))
            ADCcode = RTDdata >> 1
            self.Logger.debug("%s: ADC code: %s", self.Name, hex(ADCcode))
            self.Vout = ADCcode
            self._Resistance = round(ADCcode * self.Rref / 8192, 1)
            self.Logger.debug(msg + "success, Vout: %s, resistance: %s Ohm" % (self.Vout, self._Resistance))
            return True
    except Exception as e:
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44931935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档