DS18B20介绍
单总线温度传感器。特点:
1.工作电压比较宽 3.0v---5.5v
2.接口简单(左上角,除了VCC,GND,只剩一根数据线DQ)
3.工作范围 -55°~125°
4.分辨率可以设置,设置为9,,10,11,12位.对应温度误差在正负0.5,0.25,0.125,0.0625(默认)
5.理论上,VCC和GND接反后,只会发热不会烧坏(注:理论上)
PCD板中,1脚为GND,2脚为DQ,3脚为VCC
TM是选择测试位或使用位,出场时已被设置,无法更改
R1 R0位一般选取最高精度,即 R1=1,R0=1
MS 的前5位是符号位,后三位和LS的8位位为温度位
温度位*0.0625=实际温度
如果为正数,则前5位为00000
如果为负数,则前5位为11111,(其他位各位按位取反+1)*0.0625
如+85° 数据输出0550h 对应0000 0101(=05) 0101 0000(=50),前五位(00000)为符号位,0550(十六进制)=1360(十进制)=1360*0.0625=85°
-0.5° 数据输出FFF8h 对应1111 1111 1111 1000,先取反为0000 0000 0000 0111,变为16进制为0x0007,+1得,0x0008,=0008*0.0625=-0.5°
相当于复位环节
数据读写过程,都是低位LSB--->高位MSB
480-960us,低电平,15-30us,拉高电平
拉低电平后,60-240us,拉升为高电平,如果没有高电平,则需要480us
注:黑色部分(前400us和后240us)由单片机产生,灰色部分为DS18B20输出的响应信号
注:写时序整个过程,至少需要60us,且每个写时序需要1us间隔,且拉低总线的操作为开始标志
左侧为写0,写0时,主机拉低电平,然后持续60us
右侧为写1,写1时,主机拉低电平,然后间隔2us,不变化,然后拉高为高电平,持续60us
注:读时序整个过程至少为60us,且每个读时序至少需要1us
左图为读时序0,右图为读时序1,区别在于15us内,是否含有拉高电平(1)
注:复位环节=初始化时序,发命令=写0或1,读温度=读0或1
硬件部分
左侧为A2-A4版 右侧为A5-A7版
区别在于总线是否绑定在IO口, A2-A4,绑定 A5-A7,未绑定
注:A2-A4的P37脚有上拉电阻,A5-A7也有上拉电阻,但是重新设置BUS的上拉电阻目的是可独立使用该模块
软件部分
注意配置环境: