![見出し画像](https://assets.st-note.com/production/uploads/images/39170907/rectangle_large_type_2_708b436b70baca08c9c603351336b4ee.jpg?width=1200)
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)
これで動いていますが、何か間違いや改良すべき点を見つけたら、追記してお知らせします。
何等か、お役に立てれば幸いです。
いいなと思ったら応援しよう!
![uPyC](https://assets.st-note.com/production/uploads/images/17112724/profile_3eef7ffa8c427355bc9f8d768b3f26e4.jpg?width=600&crop=1:1,smart)