raspberrypi mcp3002 LM61

mcp3002とLM61を使って温度測定
MCP3002はCE0でchanelは1を使用
Vccは3.3v(今回は電圧ダウンの少ないUCBケーブル2.29Vありました)

# -*- coding: utf-8 -*-
import spidev
import time
import sys
spi= spidev.SpiDev()
spi.open(0,0)
spi.max_speed_hz = 1000000 #1mhz

#10ビット精度で読み出し
def  adc_read10(ch):
    if ((ch > 1) or (ch < 0)):
        return -1
    bitcom = 0xd | (ch<<1)
    bitcom <<= 3
    ret = spi.xfer2([bitcom,0,0])
    v = (ret[0]&0x3)<<8 | ret[1]
    return v

#ボルトに変換
def conv_volts(data,places):
    volts = (data *3.3)/float(1024)
    volts=round(volts,places)
    return volts

#温度に変換
def conv_temp61(volt,places):
    temp = (float)(volt -0.600)  / 0.01
    temp  =round(temp,places)
    return temp

#実行
while True:
    try:
        d=adc_read10(1)
        print("data : {:8} ".format(d))
        v=conv_volts(d,4)
        print("volts: {:8.2f}".format(v))
        t=conv_temp61(v,8)
        print("temp : {:8.2f}".format(t))
        print("------------------------")
        time.sleep(1)
        
    except KeyboardInterrupt:
        break
spi.close()  
カテゴリー iot