如何使用Arduino Nano读取 DS18B200 温度传感器的数据
DS18B20 是一种数字温度传感器,有两种版本:小型 TO-922 包装版和防水型,后者通常被金属管封装,并配有长电缆。两者均能提供数字温度读数,适用于多种室内外项目。DS18B20 采用了一种称为“单线通信”(1-Wire)的协议,仅需一根数据线即可实现通信,并可在同一引脚上支持多个传感器。
该传感器支持多种分辨率:9、10、11或12位。默认为12位分辨率,精度可达0.0625°C。较低的分辨率可加快读数速度,而较高的分辨率则能提供更详细的温度数据。DS18B20传感器测量温度范围为-55°C至+125°C(-67°F至+257°F)。
接线图
DS18B20 提供两种电源选项。它可以通过 VDDDD 引脚连接外部电源供电,也可以通过一种称为寄生模式的方法,直接从数据线上获取电源,从而无需单独的电源连接。
在两种电源模式下,必须在DQ(数据)引脚和VCC之间连接一个上拉电阻,以确保数据线在空闲时保持正确的状态。通常为此使用4.7kΩ的电阻。对于较长的电缆,例如防水版本,可能需要调整电阻值,但4.7kΩ通常可以正常工作。
你可以通过Arduino上的单个数字引脚读取多个DS18B20传感器的温度。只需将所有传感器的数据引脚连接在一起,并接入Arduino上的同一数字引脚即可。
标准模式
需要使用三线连接,电源直接供给至VDD引脚。以下是接线示意图,供您参考:
•VDD → Arduino 5V
•GND → Arduino GND
•DQ → Arduino D3(或任意数字引脚)
•DQ 与 VDD 之间的 4.7kΩ 电阻
寄生模式
仅需数据线和地线,因为传感器直接从数据线上获取电源。以下是此设置的接线图:
安装所需的Arduino库
在上传任何代码之前,你需要安装两个用于与DS18B20传感器通信的库:OneWire和DallasTemperature。
安装方法如下:
•打开Arduino IDE。
•转到“草图”菜单,选择“包含库”>“管理库”...
•在图书馆管理器中,将“OneWire”输入搜索框,找到该库并点击安装。
•接下来,搜索 DallasTemperatureTemperature 并安装该库。
•安装完成后,你就可以将它们包含在草图中,并开始使用传感器进行工作:
这些库负责通信协议,只需几行代码即可轻松获取温度读数。请参考原始的DallasTemperature库文件,其中包含了管理温度传感器所需的所有可用功能。
Arduino 代码
此示例将传感器设置在数字引脚3上,启动通信,并每秒读取一次温度值。串口监视器中显示的输出同时包含摄氏度和华氏度两种格式。
此示例从数据线上找到的第一个传感器读取数据。如果连接了多个传感器,可以通过索引或唯一的设备ID来分别寻址。
测试
代码上传后,Arduino IDE 中的串口监视器应打开,并将波特率设置为 115200。温度读数将以摄氏度和华氏度显示,如下图所示。
结论
DS18B2000 常用于家庭气象显示屏、温室监测、水族箱和智能供暖系统等项目。其数字输出能有效抵抗电气噪声,尤其在长距离布线时表现更佳。防水版本特别适用于需要将传感器放置于户外或接触液体的场合。如果使用多个传感器或计划进行较长的线路布设,请确保电阻值和线缆质量合适。不过对于大多数短距离应用,标准的 4.7kΩΩΩ 拉上电阻即可满足需求。
本文编译自hackster.io





