37种传感器(三十)DS18B20模块+Stduino Nano&UNO
本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid=57&extra=page%3D1=
关键词:
51、stm32、arduino、stduino单片机、stduino UNO&Nano、DS18B20模块
说明:
1DS18B20是由 DALLAS 半导体公司推出的一种的“单总线”接口的温度传感器。与传统的热敏电阻等测温元件相比,它是一种新型的体积小、适用电压宽、与微处理器接口简单的数字化温度传感器。
单总线结构具有简洁且经济的特点,可使用户轻松地组建传感器网络,从而为测量系统的构建引入全新概念,测量温度范围为-55到+125℃,精度为±0.5℃。现场温度直接以“单总线”的数字方式传输,大大提高了系统的抗干扰性。它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 9-12 位的数字值读数方式。它工作在 3~5.5V 的电压范围,采用多种封装形式,从而使系统设计灵活、方便,设定分辨率及用户设定的报警温度存储在 EEPROM 中,掉电后依然保存。
DS18B20的操作步骤如下:
1.初始化单总线对象;
2.搜索单总线上的仆从设备,并返回其ROM地址;
3.对ROM地址进行处理,包括CRC校验、判断芯片类型,无误后进行下一步;
4. 读取温度,具体过程包括:
4.1 复位,向DS18B20 发温度转换命令(0X44 )
4.2 重置,发读取存储命令(0XBE )
4.3 对连续校正的两个字节数据进行转换。
5. 将温度通过串口打印
具体寄存器说明,功能指令以及 ROM 指令参考DS18B20 数字温度传感器
(http://wiki.stduino.com:8181/docs/help/help-1c8t0fj4iqcb6)。
实验目的:
在本例中,我们将利用 DS18B20模块测定温度。
器材:
Stduino UNO / Nano;、杜邦线、数字温度传感器(DS18B20 )模块
电路连接:
代码展示:
#include <OneWire.h>
OneWire ds(10); // 选择I/O,实例化对象
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte present = 0;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if ( !ds.search(addr))