見出し画像

RasPi (+ADC) Python で LM61

B02 に LM61CIZ を接続して温度測定を試したので紹介します。
B02 に実装済の SPIインタフェースのA/Dコンバーター(MCP3204)経由で接続しています。

LM61は精度が高くないのですが、ラフで良い場合や、高精度の温度センサーと併用して(センサー位置ズレ、脱落等)異常検出用の補助センサーとして使っています。
生産中止品のようですが、入手可能な間は使うつもりです。

以前の記事で紹介した接続で、SPI接続のA/Dコンバーター(MCP3204)を使い、MCP3204 の CH0 に LM61CIZ をつないで試しました。

ソースコード

 例によって、ソースコードは class を記述した sub1.py と main.py に分かれています。

sub1.py

import spidev		# RasPi のインタフェース設定で SPI enable にして使う

class adc():        # ADC (MCP3204)
   
   def __init__(self):
       self.d1tbl = [0x00, 0x40, 0x80, 0xC0]       # send data 1
       self.spi = spidev.SpiDev()

   
   def rdadc(self, chn):     # Read ADC chn=0,1,2,3
       self.spi.open(0, 0) # bus0, CE0
       self.spi.max_speed_hz = 1000000  # 1MHz
       
       rd = self.spi.xfer2([0x06, self.d1tbl[chn], 0x00])
       
       self.spi.close()
       
       ret = rd[1] * 256 + rd[2]
       
       return ret
       
   
   def read_subts(self):   # sub温度センサー読み出し (LM61CIZ)
       
       vo = self.rdadc(0)
       vo = 3.3 * vo / 4095
       
       ret = (vo - 0.6) / 0.01  # 600mV@0degC 10mV/degC
       
       return ret


main.py

import sub1

adc = sub1.adc()            # ADC (MCP3204)
c = adc.read_subts()
print(c)



これで動いていますが、何か間違いや改良すべき点を見つけたら、追記してお知らせします。

何等か、お役に立てれば幸いです。






出来ればサポート頂けると、嬉しいです。 新しい基板や造形品を作る資金等に使いたいと思います。