DS18B20是常用的数字温度传感器DHT11采用单线接口,STM32通过一个IO可以通过改变输入输出状态来读取温度。与DHT11不同的是DS18B20支持多点网络功能,多点网络功能DS18B通过不同的数据线,20可以并联在数据线上ID读取不同点的温度。DS18B20测温范围-55℃~ 125℃,在-10~ 85℃时精度为±0.5℃,比较测量精度和范围DHT11要高。
DS18B20引脚排列:
市场上看到的DS18B20模块是DQ脚有上位电阻,可直接连接到单片机管脚,无需其他外围设备。
DS18b20内部结构主要由四部分组成: 64位光刻ROM、温度传感器、非挥发性温度报警传感器TH和TL、配置寄存器。
每只DS18b20都有一个唯一的只读存储器,长达64位ROM中,低8位是ds18b20单总线温度传感器,高8位CRC循环冗余校准码用于校正前56位是否正常,中间48位是唯一的序列号,通常用于元器件的识别和匹配。
程序示例:
读DS18B20:
写DS18B20:
跳过匹配ROM,只有一个适用于总线DS18B20时:
执行匹配ROM,多条适用于总线DS18B20时:
温度格式:
获取DS18B20温度,不匹配ROM
获取DS18B20温度,匹配ROM:
获取DS18B20 ID:
DS18B读取的温度通过串口发出;
注意:DS18B第一次上电时,显示温度为85℃,这是正常的。85摄氏度是DS18B上电复位后,在温度寄存器中读取相应的数字量。