在PYBoard上使用DS18B20数字温度传感器

DS18B20数字温度传感器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

单总线驱动

在MicroPython的源码中,带有了单总线的驱动,可以很方便的驱动单总线器件,如读取温度传感器DS18B20。

首先在MicroPython的源码目录中,进入drivers\onewire\目录,然后将目录下的文件ds18x20.py和onewire.py复制到PYBFLASH磁盘的根目录。复制文件后要安全退出磁盘,然后重新接入,不然找不到文件。

使用下面方法定义单总线对象(下面使用了Y10引脚,可以换成其它引脚)

from machine import Pin
import onewire
 
ow=onewire.OneWire(Pin('Y10'))

定义DS18X20对象

from ds18x20 import DS18X20
d = DS18X20(ow)

使用scan()扫描器件
使用convert_temp()启动转换
使用read_temp()读取数据
每次读取温度,都需要重复上面两步
参考程序:

from machine import Pin
import onewire
from ds18x20 import DS18X20
import time
 
ow=onewire.OneWire(Pin('Y10'))
d = DS18X20(ow)
 
rom = d.scan()
 
while 1:
    d.convert_temp()
    d.read_temp(rom[0])
    time.sleep_ms(500)

如果只有一个DS18X20,一个更加简单的方法如下:

from machine import Pin
import onewire
 
ow=onewire.OneWire(Pin('Y10'))
 
def DS18X20():
    ow.reset()
    ow.writebyte(0xCC)
    ow.writebyte(0x44)
    ow.reset()
    ow.writebyte(0xCC)
    ow.writebyte(0xBE)
    d1=ow.readbyte()
    d2=ow.readbyte()
    return (d1+d2*256)/16

DS18B20应该用ds18b20.py用文件名,却用ds18x20.py的文件名,是为了防屏蔽?

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值