ラズパイでストロベリー・リナックスの熱電対センサモジュールを扱う

Python

ラズパイで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.
タイトルとURLをコピーしました