Smooth output and round to tenth of degC

git-svn-id: http://moon:8086/svn/projects/HendiControl@200 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-03-31 08:09:52 +00:00
parent 1c065bd397
commit f9fdf411db
+7 -1
View File
@@ -15,6 +15,7 @@ class Max31865(ATemperatureSensor):
self.spi.mode = 0b01 self.spi.mode = 0b01
self.write_reg(0x00, 0xA3) self.write_reg(0x00, 0xA3)
self.temp_correction = -0.2 self.temp_correction = -0.2
self.temp = self.__tempRaw()
def read_reg(self, addr): def read_reg(self, addr):
reg = self.spi.xfer([addr, 0xFF]) reg = self.spi.xfer([addr, 0xFF])
@@ -28,14 +29,19 @@ class Max31865(ATemperatureSensor):
msb = self.read_reg(0x01) msb = self.read_reg(0x01)
lsb = self.read_reg(0x02) lsb = self.read_reg(0x02)
digits = float(256*msb + lsb)/2 digits = float(256*msb + lsb)/2
self.write_reg(0x00, 0xA3)
return digits return digits
def temperature(self): def temperature(self):
self.temp = 0.5*self.temp + 0.5*self.__tempRaw()
return round(self.temp, 1)
def __tempRaw(self):
digits = self.read_digits() digits = self.read_digits()
R = Max31865.calc_R(430, digits) R = Max31865.calc_R(430, digits)
T = Max31865.vanDusen_temp(R) + self.temp_correction T = Max31865.vanDusen_temp(R) + self.temp_correction
print("R={:.3f} Ohm, T={:.2f} degC".format(R, T)) # print("R={:.3f} Ohm, T={:.2f} degC".format(R, T))
return T return T
@staticmethod @staticmethod