ds18x20 — ds18b20温度传感器驱动

one wire总线是一种串行总线,仅使用一根电线进行通信(除了用于接地和电源的电线)。DS18B20温度传感器是一种非常流行的单线设备,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。




https://potentiallabs.com/cart/image/cache/catalog/nov-dec/DS18B20-500x500-800x800.jpg https://www.botshop.co.za/wp-content/uploads/2018/06/ds18b20-module.png https://imgaz.staticbg.com/thumb/large/oaupload/banggood/images/89/FC/cebe2df9-a7d2-4f28-8477-9fd5ffc0ab46.jpg
  • 独特的onewire(单总线)接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

  • 测温范围 -55℃~+125℃,

  • 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。

  • 工作电源: 3.0~5.5V/DC



../images/tutorials/ds18x20_res.jpeg

如果你使用的ds18b20单个器件,为保证数据传输稳定,信号OUT引脚需接4.7K的上拉电阻。


DS18X20类

class ds18x20.DS18X20(onewire)

构建DS18X20类。

  • onewire - one wire实例对象

DS18X20.scan()

扫描单总线上的ds18b20设备,返回设备地址的列表。

DS18X20.convert_temp()

获取采样温度并进行温度单位转换。

DS18X20.read_temp(rom)

返回该设备的温度值。注意,在 convert_temp() 转换温度后,至少需要等待750毫秒,才能读取温度值。

  • rom - 设备地址