K210+GY906


#=======================测温=====================#
from machine import I2C
import time
i2c = I2C(I2C.I2C0,freq=100000, scl=0, sda=1)
time.sleep_ms(100)

MLX90614_IIC_ADDR	= const(0x5A)
MLX90614_TA			= const(0x06)
MLX90614_TOBJ1 		= const(0x07)
temp=0
class MLX90614:
  def __init__(self,i2c,addr=MLX90614_IIC_ADDR):
    self.addr=addr
    self.i2c=i2c

  def getObjCelsius(self):
        return self.getTemp(MLX90614_TOBJ1)	#Get celsius temperature of the object

  def getEnvCelsius(self):
        return self.getTemp(MLX90614_TA)	#Get celsius temperature of the ambient

  def getObjFahrenheit(self):
        return (self.getTemp(MLX90614_TOBJ1) * 9 / 5) + 32	#Get fahrenheit temperature of the object

  def getEnvFahrenheit(self):
        return (self.getTemp(MLX90614_TA) * 9 / 5) + 32	#Get fahrenheit temperature of the ambient


  def getTemp(self,reg):
        global temp
        temp = self.getReg(reg)*0.02-273.15	#Temperature conversion
        
        

  def getReg(self,reg):
    data = self.i2c.readfrom_mem(self.addr,reg,3) 							#Receive DATA
    result = (data[1]<<8) | data[0]
    return result
ir = MLX90614(i2c)


while (1):
    ir.getObjCelsius()
    print("temp  %s *C"% (temp))    

在使用过程中报错,用try 解决异常就好了

  def getReg(self,reg):
    try:
        data = self.i2c.readfrom_mem(self.addr,reg,3) 
        result = (data[1]<<8) | data[0]#Receive DATA
        return result
    except:
        print("ads")
        result=0
        return result
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值