掌控板LM35温度传感器驱动

MicroPython相关代码、库、工具
回复
头像
shaoziyang
帖子: 706
注册时间: 2019年 10月 21日 13:48

掌控板LM35温度传感器驱动

#1

帖子 shaoziyang » 2019年 11月 28日 12:16

原帖作者:chpczx 发表于 2019-7-20

直接使用掌控板上read_analog读取值时,误差很大,30摄氏度测量出来显示20摄氏度。于是,想一些方法看怎样来减少误差。

考虑到最大测量电压只有1V,(100摄氏度时是1V).因此尝试减小最大测量电压到1.2V,误差果然小了很多。程序在mpythonx0.33中调试通过。

代码: 全选

from mpython import *

class LM35:
    def __init__(self, pin):
        if pin not in [0,1,2,3]:
            raise  IndexError("引脚必须是0,1,2,3")
        pinList=[32,33,35,34]
        # vmax 最大测量电压
        self.vmax = 1.2
        self.max_Analog = 4096
        self.pin = pin
        self.adc=ADC(Pin(pinList[pin]))
        self.adc.atten(ADC.ATTN_0DB)
        self.adc.width(ADC.WIDTH_12BIT)

    def read(self):
        val = int(sum([self.adc.read() for i in range(50)]) / 50)
        t=int(val*self.vmax*1000/self.max_Analog)/10
        return t

if __name__ == "__main__":
    t = LM35(2)
    while True:
        x= t.read()
        oled.fill(0)
        oled.DispChar(("温度:%s摄氏度" % (x)), 0, 20)
        oled.show()
 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章