0

我对编码很陌生。我正在尝试通过我的 Raspberry Pi 3 读取 PT100 rtd。我读到我需要 Max31865 RTD 放大器来正确读取数据,因为电阻非常小。我相当确定我已正确插入。我正在使用此代码,只是稍作编辑。 https://github.com/steve71/MAX31865

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

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

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

任何帮助,将不胜感激。

4

2 回答 2

2

我现在正在处理同样的问题。您将 Pt100 与 3 线还是 4 线一起使用?

我通过将原始代码 ( https://github.com/steve71/MAX31865 )的第 78 行中的正确配置状态寄存器设置为 0xA2 来解决了这个问题

self.writeRegister(0, 0xA2)

我使用的是 4 线,所以我必须将 bit4 从 1(3 线)更改为 0(2 或 4 线)

0xb10100010

在此之后,我将其作为输出

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

Brrr……我房间里很冷,不是吗?为了解决这个问题,我不得不将第 170 行的参考电阻更改为 430 欧姆

R_REF = 430.0 # Reference Resistor

很好奇,因为我经常红色,这个设备上安装了一个 400 欧姆的电阻作为参考。事实上,在 SMD 电阻上是一个 3 位代码“431”,表示 430 欧姆。嗯……

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

Callendar-Van Dusen Temp (degC > 0): 25.091629 degC

此致

于 2017-07-05T20:16:24.677 回答
0

你解决了吗?如果你没有,下面的 python 类方法对我有用。我记得我在连接强制终端时遇到了一些麻烦,从记忆中,你必须桥接两个强制终端。

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:
于 2017-11-22T20:45:32.167 回答