一,DS18B20 温度传感器介绍
1,采用单总线的接口方式 与微处理器连接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量。
2,测量温度范围宽,测量精度高 DS18B20 的测量范围为 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范围内,精度为 ± 0.5°C 。
3,在使用中不需要任何外围元件。
4,持多点组网功能 多个 DS18B20 可以并联在唯一的单线上,实现多点测温。
5,工作电源: 3.0~5.5V。DS18B20 也可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
6,测量参数可配置 DS18B20 的测量分辨率可通过程序设定 9~12 位。
7,负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
8,掉电保护功能 DS18B20 内部含有 EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
二,硬件连接
因为Pico的IO是3.3V的,所以这次DS18B20的工作电源接3.3V。
硬件连接:
DS18B20的1脚(GND)---Pico的38脚(GND)
DS18B20的2脚(DQ) ---Pico的6脚(GP4)
DS18B20的3脚(VDD)---Pico的36脚(3V3 OUT)
三,程序
系统是带相关的库的,所以直接使用就可以了。
import machine, onewire, ds18x20, time
ds_pin=machine.Pin(4)
ds_sensor = ds18x20.DS18X20(onewire.OneWire(ds_pin))
roms = ds_sensor.scan()
print('Found DS devices: ', roms)
while True:
ds_sensor.convert_temp()
time.sleep_ms(750)
for rom in roms:
print(rom)
print(ds_sensor.read_temp(rom))
time.sleep(2)
下面是输出结果: