ラズパイでMCP9600の実装されているキットを購入して恒温槽の温度監視を行うことになった。
●問題
1.I2Cで読み出すとLSBが化けるときがある
これは多分ラズパイのI2Cで使用している抵抗値が関係していそうだ。スイッチサイエンスのIC温度センサでは発生しない。
2.連続運転状態で電源アラームがPython3で実行中のプログラムで表示された。これは自分の今回制作したプログラムには入っていない。
たまにモニタ右上に稲妻マーク。USB2.5Aのアダプタで使っている。
今回の熱電対治具と合計で(5.15V、0.52A)だ。電圧の変動に弱いらしい。
#!/usr/bin/env python
import colorama
from colorama import Fore, Back, Style
import smbus
import time
i2c = smbus.SMBus(1)
cnt = 0
#colorama.init(autoreset=True)
cmd = [0x67,0x66,0x65,0x64,0x63]
def getTemp(addrs_seq):
addr = cmd[addrs_seq]
block = i2c.read_i2c_block_data( addr,0x0,2)
val = block[0]<<8
val = val | block[1]
if(val >= 0x7fff):
val = val - 0xffff
result = val * 0.0625
return result
n = 0
while 1:
while 1:
raw = getTemp(n)
if raw>17:
break
rt = raw
print( Fore.WHITE + "", end="")
print(cnt,": ",end='')
if raw > 27:
print( Fore.RED + "", end="")
print("{0:.1f}".format(rt),"℃")
else:
print( Fore.WHITE + "", end="")
print("{0:.1f}".format(rt),"℃")
n += 1
if n>4:
n = 0
print(Fore.GREEN + "------------")
cnt +=1
time.sleep(0.5)
No tags for this post.

