硬件:传感器(DS18B20)
传感器:
数字温度传感器,实现简单,不需要额外转换电路,采集过来的就是数字温度值
模拟温度传感器->热敏电阻->AD转换电路->数字值
传感器接口:
GPIO接口:
I2C接口:SCL SDAVCCGND
SPI接口:SCLK、CS、MOSI、MISO
ADC接口:板子ADC进行模数转换
UART接口:GPS
DS18B20属于GPIO接口,但比较特殊,是一种单总线的传感器
测温范围为-55~125℃
精度:±0.5℃
引脚说明
GND地
DQ数字输入输出
VDD可选的VDD
NC空引脚
DNC不连接
DS18B20及引脚功能
DS18B20 是美国达拉斯半导体公司推出的一款单总线数字温度传感器。它具有体积小、硬件开销低、抗干扰能力强、精度高的特点,可直接将温度转化为数字信号,便于与单片机等微控制器进行接口连接,广泛应用于各种温度检测场合,如工业控制、消费电子、医疗设备等领域的温度监测。
引脚功能
DS18B20 通常有三个引脚,不同封装可能略有差异,以常见的 TO - 92 封装为例:
- GND(地):电源地引脚,为传感器提供参考地电位。
- DQ(数据输入 / 输出):单总线数据通信引脚,用于与微控制器进行数据交互,实现温度数据的读取和传感器的配置等操作。
- VDD(电源):电源引脚,为传感器提供工作电压,一般工作电压范围为 3.0V - 5.5V。
DS18B20工作原理
DS18B20 内部采用温度感应元件,当温度变化时,其内部的相关电路会将温度信号转化为数字信号。它基于单总线协议进行通信,微控制器通过 DQ 引脚向 DS18B20 发送指令,DS18B20 响应指令并返回温度等数据。
1.温度转换
DS18B20 可以通过指令启动温度转换过程。当接收到温度转换指令后,传感器内部开始进行温度测量和转换,将采集到的模拟温度信号转换为 9 - 12 位的数字温度值(可通过配置寄存器设置精度)。
测温范围为:-55℃~125℃ 精度范围:±0.5℃
2.数据存储与读取
转换得到的数字温度值存储在 DS18B20 内部的存储单元中,微控制器通过单总线协议发送读取指令,即可从 DS18B20 中读取到温度数据。
单总线通信协议
单总线是一种采用一根数据线进行数据传输的总线结构,DS18B20 遵循单总线的通信规范,主要包括初始化、写操作和读操作三个部分
流程如下:
(一)初始化
微控制器首先将 DQ 引脚拉低一段时间(通常为 480 - 960μs),然后释放 DQ 引脚,进入接收状态。DS18B20 检测到上升沿后,会等待一段时间,然后将 DQ 引脚拉低作为响应,表明传感器已准备好进行通信。
(二)写操作
写操作分为写 0 和写 1 两种情况:
- 写 0:微控制器将 DQ 引脚拉低,并保持至少 60μs,然后释放 DQ 引脚。
- 写 1:微控制器将 DQ 引脚拉低,然后在 15μs 内释放 DQ 引脚,DS18B20 在合适的时间窗口读取 DQ 引脚上的电平。
(三)读操作
微控制器将 DQ 引脚拉低,然后在 15μs 内释放 DQ 引脚,DS18B20 会在接下来的时间内将数据位(0 或 1)放到 DQ 引脚上,微控制器读取该电平值。
DS18B20相关程序
(一)初始化函数
实现单片机对 DS18B20 的初始化操作,按照单总线初始化的时序,控制 I/O 口的电平变化,检测 DS18B20 的响应。
(二)写指令函数
根据单总线写操作的时序,向 DS18B20 写入相应的指令,如温度转换指令、读取温度指令等。
(三)读数据函数
按照单总线读操作的时序,从 DS18B20 中读取温度数据等信息
(四)温度读取与处理
发送温度转换指令后,等待转换完成(转换时间与精度有关,12 位精度时约为 750ms),然后发送读取温度指令,读取到的数字温度值需要进行相应的转换,得到实际的温度值(单位为摄氏度)。例如,对于 12 位精度,数字量每变化 1,对应的温度变化为 0.0625℃。