DS18B20温度传感器实验
温度传感器ds18b20实验报告
温度传感器ds18b20实验报告温度传感器DS18B20实验报告引言温度传感器在现代生活中扮演着重要的角色,它们被广泛应用于各种领域,包括工业、医疗、农业等。
DS18B20是一种数字温度传感器,具有精准的测量能力和数字输出,因此备受青睐。
本实验旨在通过对DS18B20温度传感器的测试和分析,探讨其性能和应用。
实验目的1. 了解DS18B20温度传感器的工作原理和特性。
2. 测试DS18B20温度传感器的测量精度和响应速度。
3. 探讨DS18B20温度传感器在实际应用中的优缺点。
实验器材1. DS18B20温度传感器2. Arduino开发板3. 4.7kΩ电阻4. 连接线5. 电脑实验步骤1. 将DS18B20温度传感器连接到Arduino开发板上,并接入4.7kΩ电阻。
2. 编写Arduino程序,通过串口监视器输出DS18B20传感器的温度数据。
3. 将DS18B20传感器置于不同的温度环境中,记录其输出的温度数据。
4. 分析DS18B20传感器的测量精度和响应速度。
5. 探讨DS18B20传感器在实际应用中的优缺点。
实验结果经过实验测试,DS18B20温度传感器表现出了较高的测量精度和响应速度。
在不同温度环境下,其输出的温度数据与实际温度基本吻合,误差较小。
此外,DS18B20传感器具有数字输出,易于与各种微控制器和单片机进行连接,应用范围广泛。
然而,DS18B20传感器在极端温度环境下可能出现测量误差,且价格较高,需要根据实际需求进行选择。
结论DS18B20温度传感器具有较高的测量精度和响应速度,适用于各种温度测量场景。
然而,在选择和应用时需要考虑其价格和适用范围,以确保满足实际需求。
希望本实验能够为DS18B20温度传感器的应用提供参考和借鉴,推动其在各个领域的发展和应用。
温度通信系统实验报告(3篇)
第1篇一、实验目的1. 了解温度通信系统的基本组成和工作原理。
2. 掌握温度传感器的使用方法和信号采集技术。
3. 熟悉温度信号的传输和通信协议。
4. 分析温度通信系统的性能,优化系统设计。
二、实验原理温度通信系统主要由温度传感器、信号采集电路、通信模块和数据终端组成。
温度传感器用于测量环境温度,信号采集电路将温度信号转换为标准信号,通信模块负责将信号传输到数据终端,数据终端则对温度数据进行处理和分析。
三、实验仪器与设备1. 温度传感器:DS18B202. 信号采集电路:包括电阻、电容、运算放大器等3. 通信模块:ESP8266 Wi-Fi模块4. 数据终端:PC或智能手机5. 连接线、电源等四、实验步骤1. 搭建实验平台:将温度传感器、信号采集电路和ESP8266 Wi-Fi模块连接到PC 或开发板上。
2. 编程:使用C语言编写程序,实现以下功能:- 温度传感器数据采集- 信号处理与转换- Wi-Fi模块连接与数据传输3. 测试:- 连接Wi-Fi模块到路由器,测试通信是否正常。
- 通过数据终端接收温度数据,观察数据是否准确。
4. 性能分析:- 分析温度通信系统的延迟、带宽和稳定性。
- 优化系统设计,提高通信效率和可靠性。
五、实验结果与分析1. 数据采集:通过实验,成功采集到温度传感器数据,并将其转换为标准信号。
2. 通信测试:通过Wi-Fi模块,成功将温度数据传输到数据终端,通信稳定可靠。
3. 性能分析:- 延迟:实验中温度数据传输延迟约为1秒,满足实际应用需求。
- 带宽:根据实验条件,通信带宽约为500kbps,可满足数据传输需求。
- 稳定性:在测试过程中,通信系统表现出良好的稳定性,未出现中断或数据丢失现象。
六、实验结论1. 温度通信系统可以有效地将温度数据传输到数据终端,实现远程监控和控制。
2. 实验中使用的DS18B20温度传感器具有高精度、低功耗等优点,适用于温度监测领域。
3. ESP8266 Wi-Fi模块具有良好的通信性能,可满足实际应用需求。
DS18B20温度测量与控制实验报告
课程实训报告《单片机技术开发》专业:机电一体化技术班级: 104201学号: 10420134姓名:杨泽润浙江交通职业技术学院机电学院2012年5月29日目录一、DS18B20温度测量与控制实验目的……………………二、DS18B20温度测量与控制实验说明……………………三、DS18B20温度测量与控制实验框图与步骤……………………四、DS18B20温度测量与控制实验清单……………………五、DS18B20温度测量与控制实验原理图…………………六、DS18B20温度测量与控制实验实训小结………………一、实验目的1.了解单总线器件的编程方法。
2.了解温度测量的原理,掌握 DS18B20 的使用。
二、实验说明本实验系统采用的温度传感器DS18B20是美国DALLAS公司推出的增强型单总线数字温度传感器。
Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20 内部结构DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。
DS18B20 的管脚排列如下: DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。
光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。
数字温度传感器DS18B20在体温检测中的应用
收稿日期:2005-02-08数字温度传感器DS18B20在体温检测中的应用韦 哲,程自峰(兰州军区兰州总医院器械科,甘肃兰州730050)〔中图分类号〕T N79 〔文献标识码〕A 〔文章编号〕1002-2376(2005)04-00010-03 〔摘 要〕本文主要介绍美国DA LLAS公司的一线数字温度传感器DS18B20结构原理及特点,并给出了与单片微机较详细的接口电路及读写时序,结合它在体温检测系统中的应用,对出现的硬件和软件的有关问题给出解决方法。
〔关键词〕DS18B20;体温检测;单片微机1 DS18B20结构特点DS18B20是DA LLAS公司生产的一线式数字温度传感器,具有3引脚T O-92小体积封装形式;温度测量范围为-55~+125℃,可编程为9~12位A/D 转换精度,测温分辨率可达010625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。
以上特点使DS18B20适合于多点温度检测系统中。
本系统将其引入人体温度检测。
(1)DS18B20的性能参数(a)可用数据线供电,电压范围:310~515V;(b)测温范围:-55~+125℃,在-10~+85℃时精度为±015℃;(c)可编程的分辨率为9~12位,对应的可分辨温度分别为015℃、0125℃、01125℃和010625℃;(d)12位分辨率时最多在750ms内把温度值转换为数字;(e)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
(2)DS18B20的外形及引脚说明外形如图1所示。
其体积只有DS1820的一半,引脚定义相同。
(3)DS18B20内部结构(a)DS18B20的内部结构如图2所示。
温度传感器ds18b20实验报告
温度传感器ds18b20实验报告温度传感器DS18B20实验报告引言:温度传感器是一种用于测量环境温度的设备,它在许多领域都有广泛的应用,如气象学、工业控制、冷链物流等。
本实验报告将介绍DS18B20温度传感器的原理、实验装置和实验结果,并对其性能进行评估。
一、实验原理DS18B20温度传感器是一种数字温度传感器,采用单总线接口进行通信。
它采用了最新的数字温度传感器技术,具有高精度、低功耗、抗干扰等特点。
其工作原理是利用温度对半导体材料电阻值的影响,通过测量电阻值的变化来确定温度。
二、实验装置本实验使用的实验装置包括DS18B20温度传感器、Arduino开发板、杜邦线和计算机。
Arduino开发板用于读取传感器的温度数据,并通过串口将数据传输到计算机上进行处理和显示。
三、实验步骤1. 连接电路:将DS18B20温度传感器的VCC引脚连接到Arduino开发板的5V 引脚,GND引脚连接到GND引脚,DQ引脚连接到Arduino开发板的数字引脚2。
2. 编写代码:使用Arduino开发环境编写代码,通过OneWire库和DallasTemperature库读取DS18B20传感器的温度数据。
3. 上传代码:将编写好的代码上传到Arduino开发板上。
4. 监测温度:打开串口监视器,可以看到DS18B20传感器实时的温度数据。
四、实验结果在实验过程中,我们将DS18B20温度传感器放置在不同的环境中,记录了其测得的温度数据。
实验结果显示,DS18B20温度传感器具有较高的精度和稳定性,能够准确地测量环境温度。
五、实验评估本实验评估了DS18B20温度传感器的性能,包括精度、响应时间和抗干扰能力。
实验结果表明,DS18B20温度传感器具有较高的精度,能够在0.5℃的误差范围内测量温度。
响应时间较快,能够在毫秒级别内完成温度测量。
同时,DS18B20温度传感器具有较好的抗干扰能力,能够在干扰环境下保持稳定的测量结果。
温度传感器实验报告
一、实验原理DS18B20 测温原理如图 1.2 所示。
图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号发送给计数器1。
高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器 1 和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到0时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。
图 1.1 测温原理图二、测温系统硬件电路图本测温系统选择体积小、成本低、内带2KEEPROM的89C2051作为控制芯片,晶振采用12MHZ,用74LS07驱动四个LED数码管和一个继电器线圈从而驱动电加热设备。
P3.5口作为采集温度信号线,P1口作为显示数据线,与P3.3,P3.4组成显示的个位、十位及符号位,采用动态扫描显示。
在本系统中测控一路温度信号,DS18B20通过单总线方式连接在单片机的P3.5引脚上,可设定所需的温度测定值(包括上限值和下限值),P3.1引脚控制电热设备启动与停止,从而达到控制温度效果。
整个系统的硬件原理图如图2.1所示:图2.1 测温系统硬件原理图二、实验过程记录3.1 DS18B20控制过程DS18B20的操作是通过执行操作命令实现的,其中包含复位脉冲、响应脉冲、读、写时序,时序的具体要求如下:(1)复位脉冲:单片机发出一个宽为480—960μs的负脉冲之后再发出5—60μs的正脉冲,此时DS18B20会发出一个60—240μs的响应脉冲,复位时序结束。
也就是呼应阶段。
(2)写时间片:写一位二进制的信息,周期至少为61μS,其中含1μS的恢复时间,单片机启动写程序后15—60μs期间DS18B20自动采样数据线,低电平为“0”,高电平为“1”。
温度传感器实验报告
温度传感器实验报告
一、实验目的
本实验旨在通过使用温度传感器来检测不同环境下的温度变化,并通过实验数据分析温度传感器的性能和准确度。
二、实验仪器
1. Arduino Uno控制板
2. DS18B20数字温度传感器
3. 杜邦线
4. 电脑
三、实验步骤
1. 连接DS18B20温度传感器到Arduino Uno控制板上。
2. 使用Arduino软件编写读取温度传感器数据的程序。
3. 通过串口监视器读取传感器采集到的温度数据。
4. 将温度传感器放置在不同环境温度下,记录数据并进行分析。
四、实验数据
在室内环境下,温度传感器读取的数据平均值为25摄氏度;在户外阳光下,温度传感器读取的数据平均值为35摄氏度。
五、实验结果分析
通过实验数据分析可知,DS18B20温度传感器对环境温度有较高的
敏感度和准确性,能够较精准地反映环境温度的变化。
在不同环境温
度下,传感器能够稳定地输出准确的温度数据。
六、实验结论
本实验通过对DS18B20温度传感器的测试和分析,验证了其在温
度检测方面的可靠性和准确性。
温度传感器可以广泛应用于各种领域,如气象监测、工业控制等。
通过本次实验,我们对温度传感器的性能
有了更深入的了解。
七、参考文献
1. DS18B20温度传感器数据手册
2. Arduino Uno官方网站
以上为实验报告内容,谢谢!。
温度控制DS18B20器实验
温度控制DS18B20器实验DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
DS18B20、DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为±2°C 。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DS18B20、DS1822 的特性DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B 20的简化版本。
省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。
继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。
DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20温度传感器使用方法以及代码
第7章DS18B20温度传感器7.1 温度传感器概述温度传感器是各种传感器中最常用的一种,早起使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可以计算出当前环境温度。
随着科技的进步,现代的温度传感器已经走向数字化,外形小,接口简单,广泛应用在生产实践的各个领域,为我们的生活提供便利。
随着现代仪器的发展,微型化、集成化、数字化、正成为传感器发展的一个重要方向。
美国DALLS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即单片机接口仅需占用一个I/O端口,无需任何外部元件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。
7.2 DS18B20温度传感器介绍DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
1.DS18B20温度传感器的特性①独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
②在使用中不需要任何外围元件。
③可用数据线供电,电压范围:+3.0~ +5.5 V。
④测温范围:-55 ~+125 ℃。
固有测温分辨率为0.5 ℃。
⑤通过编程可实现9~12位的数字读数方式。
DS18B20温度传感器实训教程
(2)程序编写、编译。
a.编写主函数程序main.c如下:
#include "reg52.h"
#include"temp.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
2硬件连接3程序烧入芯片1选择单片机型号串口号打开程序文件关闭单片机电源再点击下载程序然后打开电源程序显示下载操作成功即可
DS18B20
1、
1、掌握DS18B20温度传感器设计与制作及其特性;
2、熟练KeiluVision5软件及程序烧入软件基础运用;
3、了解并使用单片机开发试验仪做基础实验。
4、学会基础的C51单片机程序编写并看懂较为复杂的程序。
{
Ds18b20Init();
Delay1ms(1);
Ds18b20WriteByte(0xcc);//跳过ROM操作命令
Ds18b20WriteByte(0xbe);//发送读取温度命令
}
/*******************************************************************************
for(j=8; j>0; j--)
{
DSPORT = 0;//先将总线拉低1us
i++;
DSPORT = 1;//然后释放总线
i++;
i++;//延时6us等待数据稳定
bi = DSPORT;//读取数据,从最低位开始读取
温度传感器实验报告
一、实验目的1. 了解温度传感器的原理和分类。
2. 掌握温度传感器的应用和特性。
3. 学习温度传感器的安装和调试方法。
4. 通过实验验证温度传感器的测量精度。
二、实验器材1. 温度传感器:DS18B20、热电偶(K型、E型)、热敏电阻(NTC)等。
2. 测量设备:万用表、数据采集器、温度调节器等。
3. 实验平台:温度传感器实验模块、单片机开发板、PC机等。
三、实验原理温度传感器是将温度信号转换为电信号的装置,根据转换原理可分为接触式和非接触式两大类。
本实验主要涉及以下几种温度传感器:1. DS18B20:一款数字温度传感器,具有高精度、高可靠性、易于接口等优点。
2. 热电偶:利用两种不同金属导体的热电效应,将温度信号转换为电信号。
3. 热敏电阻:利用温度变化引起的电阻值变化,将温度信号转换为电信号。
四、实验步骤1. DS18B20温度传感器实验1. 连接DS18B20传感器到单片机开发板。
2. 编写程序读取温度值。
3. 使用数据采集器显示温度值。
4. 验证温度传感器的测量精度。
2. 热电偶温度传感器实验1. 连接热电偶传感器到数据采集器。
2. 调节温度调节器,使热电偶热端温度变化。
3. 使用数据采集器记录热电偶输出电压。
4. 分析热电偶的测温特性。
3. 热敏电阻温度传感器实验1. 连接热敏电阻传感器到单片机开发板。
2. 编写程序读取热敏电阻的电阻值。
3. 使用数据采集器显示温度值。
4. 验证热敏电阻的测温特性。
五、实验结果与分析1. DS18B20温度传感器实验实验结果显示,DS18B20温度传感器的测量精度较高,在±0.5℃范围内。
2. 热电偶温度传感器实验实验结果显示,热电偶的测温特性较好,输出电压与温度呈线性关系。
3. 热敏电阻温度传感器实验实验结果显示,热敏电阻的测温特性较好,电阻值与温度呈非线性关系。
六、实验总结通过本次实验,我们了解了温度传感器的原理和分类,掌握了温度传感器的应用和特性,学会了温度传感器的安装和调试方法。
温度控制DS18B20器实验
温度控制DS18B20器实验DALLAS最新单线数字温度传感器DS18B20简介新的“一线器件”体积更小、适用电压更宽、更经济Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
DS18B20、DS1822 “一线总线”数字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为±2°C 。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
而且新一代产品更便宜,体积更小。
DS18B20、DS1822 的特性DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822与DS18B20软件兼容,是DS18B 20的简化版本。
省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。
继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。
DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。
DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
(完整word版)基于单片机的DS18B20设计实验报告
第1章引言在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。
其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。
因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。
本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。
本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于测温比较准确得场所,或科研实验室使用。
该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用LED.第2章任务与要求2.1测量范围-50~110°C,精确到0.5°C;2.2利用数字温度传感器DS18B20测量温度信号;2.3所测得温度采用数字显示,计算后在液晶显示器上显示相应得温度值;第3章方案设计及论证3.1温度检测模块的设计及论证由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
3.2显示模块的设计及论证LED是发光二极管Light Emitting Diode 的英文缩写。
LED显示屏是由发光二极管排列组成的一显示器件。
51单片机DS18B20温度传感器原理及实验
51单片机DS18B20温度传感器原理及实验一、引言温度传感器是一种常用的传感器器件,它的作用是将物体的温度变化转换为电信号输出,以实现温度的监测和控制。
DS18B20是一种数字温度传感器,采用数字信号输出,具有体积小、精度高、线性度好等特点,被广泛应用于各种温度控制系统中。
本文将介绍DS18B20的工作原理及实验方法。
二、DS18B20的工作原理DS18B20是一种基于一线传输协议的数字温度传感器,其工作原理如下:1.接口电路:DS18B20具有三个引脚,分别是VDD、DQ和GND。
其中,VDD是供电引脚,DQ是数据引脚,GND是地引脚。
2.传感器原理:DS18B20内部包含一个温度传感器和一个数字转换器。
温度传感器采用热敏电阻的原理,通过测量热敏电阻的电阻值来反映物体的温度变化。
数字转换器将传感器测得的电阻值转换为数字信号输出。
三、实验流程以下是使用51单片机对DS18B20温度传感器进行实验的详细流程:1.硬件准备:-将DS18B20的VDD引脚连接到单片机的VCC引脚,DQ引脚连接到单片机的任意IO引脚,GND引脚连接到单片机的GND引脚。
-确保DS18B20的供电电压和单片机的工作电压一致。
2.初始化:-在程序中定义DS18B20的DQ引脚所对应的单片机的IO引脚。
-初始化DS18B20,即发送初始化指令给DS18B20。
3.温度转换:-发送温度转换指令给DS18B20,DS18B20开始测量温度。
-等待一定的延时,确保DS18B20完成温度转换。
4.读取温度:-发送读取温度指令给DS18B20,DS18B20将温度的原始数据发送给单片机。
-单片机通过计算将原始数据转换为温度值。
-温度值可以通过串口或LCD等方式进行显示。
5.循环实验:-以上步骤需要不断重复,以便实时监测温度的变化。
四、总结DS18B20温度传感器是一种常用的数字温度传感器,具有精度高、体积小、线性度好等特点,适用于各种温度控制系统。
18B20温度传感器实验笔记重点
DS18B20温度传感器实验笔记李进 2008-12-10DS18b20用12位存贮温度值,最高位为符号位。
下表(表1)为18b20的温度存储方式。
负温度S = 1,正温度S = 0。
温度值以补码表示。
正数与原码相同,负数是补码,需要再次求补后才能正确显示。
如:0550H 为+85℃,0191H 为+25.0625℃,FC90H 为-55℃。
DS18B20的输出位数被设置成(9,10,11或12bit ),出厂的默认值是12bit 。
对应的分辨率是0.5℃,0.25℃,0.125℃或0.0625℃。
使用Convert T[44h]命令启动一次转换,温度的16位转换值存于暂存器中,并扩展两位符号位。
使用Read Scratchpad[BEh]命令,将温度值通过1线口输出,低位(LSB )首先输出。
LSB MSB整型数表示(int 型,最高4位无用)表格数据说明:表中的数据是从18B20中读取的温度值,以补码的形式表示。
因此,其真实值应求补得到,(补码的补码为真值)。
1. 正数的补码就是该数本身,因此不必求补得真。
例如,+0.5°C 读得0000 0000 0000 1000B,前4位舍掉后,所余的最高位(D11)是符号位,0代表正数。
最后4位(D3~D0)是小数,按小数化为十进制数,因此 .1000 B= 0.5。
+85.0℃读数舍掉最高4位后,得0101 0101 0000B,所余12位二进制数,最高位(D11)是符号位,0表示正数,D10~D4共7位101 0101B = 85,后4位是小数;+25.0625℃读得0001 1001 0001B。
整数部分意义同上,前7位整数001 1001B = 25,最后4位小数: .0001B = .06252. 负数求补得真值。
求补时不必考虑小数点位置,读得的测温结果是16位二进制数,最高4位无用舍去,所余12位保留最高位(D11)符号位不变,其余11位求补,得到真值。
DS18B20温度传感器
4.25 DS18B20温度传感器输出显示本例的DS18B20数字温度计是DALLAS公司生产的l-Wire式单总线器件,具有线路简单,体积小的特点,用它组成的温度测量系统线路非常简单,只要求一个端口即可实现通信。
DS18B20的每个器件上都有唯一的序列号,其温度测量范围在一55℃—+125℃之间,数字温度计的分辨率可以从9一12位选择,内部还有温度上、下限报警设置。
运行本例时,1602LCD将显示DS18B20所测量的外部温度,调节DS18B20模拟改变外界温度时,新的温度值将刷新显示在LCD上。
本例电路及运行效果如图4-39所示。
程序设计调试与实训:DS18B20内部结构主要由64位ROM,温度传感器,非易失性温度报警触发器TH 和TL,配置寄存器组成。
读者在阅读本例时需要参考图4-40所示的DS18B20内存结构(含上电时的初始状态),表4-11所示的DS18B20RAM操作命令集及表4-12所示的温度寄存器字节格式。
本例要点在于读取温度函数Read_Temperature和温度显示函数Display_Temperature的编写,对于前者,代码中OxCC命令字节用于跳过读取ROM摩列号(参考DS18820F手册中的DS18820ROM命令),Ox44启动温度转换,OxBE读取温度寄存器。
温度显示函数Display_Temperature根据读取的2字节温度值(保存在Temp_Value数组中)进行显示,阅读该函数代码时,可参考表4-12所示的2字节温度格式,特别是高字节中的符号位S和低字节中的小数bit3~bit0,因为本例仅保存一位小数,温度小数位对照表df_Table将0000~1111对应的16个不同小数序列进行四舍五入,例如,当读取的温度低字节低4位为OIOI 时,对应的温度应为2-2+ 2_4=0.3125≈0.3,因此数组第5个元素(对应于OIOI)的值为3,又如,如果低4位为OIIO,对应的温度应为2-2+ 2-3= 0.375岛0.4,因此,数组第6个元素(对应于0110)取值为4。
数字温度传感器DS18B20应用实例
二、对DS18B20写1字节数据
过
程
对应程序
(1)数据线先置低电平0,发送的起始 void write_OneChar(uchar dat) 信号。 { (2)延时确定的时间为15µs; uchar i = 0; (3)按低位到高位顺序发送数据(一次 for (i = 8; I > 0; i--) 只发送一位)。 { (4)延时时间为45µs,等待DS18B20 DQ = 0; 接收; delay(5); (5)将数据线拉到高电平1,单片机释 DQ = dat & 0x01; 放总线; delay(15); (6)重复①~⑤步骤,直到发送完整个 DQ = 1; 字节; dat >> = 1; (7)最后将数据线拉高,单片机释放总 } 线。 delay(4); }
所示。
图3 - 1 DS18B20外形及引脚排列D源自18B20引脚功能描述序号
1 2
名称
GND DQ 地信号
描述
数据输入输出引脚
3
Vdd 电源输入引脚,当工作于寄生 (Vcc) 电源模式时,此引脚必须接地
值得一提的是DQ引脚的I/O为数据输入/输出端(即单 总线),该引脚为漏极开路输出,常态下呈高电平。而单 总线技术是DS18B20的一个特点,也是目前的技术热点之 一。
3.2 单总线数据传输原理
单总线协议规定一条数据线传输串行数据,时序有严格 的控制,对于DS18B20的程序设计,必须遵守单总线协议。 DS18B20操作主要分初始化、写数据、读数据。下面分别 介绍操作步骤。
一、初始化时序
对DS18B20初始化的不得是:单片机感知 DS18B20存在并为下一步操作做准备,同时启动 DS18B20,程序设计依据时序进行。设P1.0口与 DS18B20的数据DQ连接,初始化过程如下:
stm32基于ds18b20的温度测量实例 实验原理
stm32基于ds18b20的温度测量实例实验原理
DS18B20是一款数字温度传感器,其测温范围为-55℃到+125℃,在-10℃到+85℃范围内误差为±°。
主机和从机通信使用单总线,即使用单线进行数据的发送和接收,在使用中不需要任何外围元件,独立芯片即可完成工作。
每个DS18B20都有独立唯一的64位-ID,此特性决定了它可以将任意多的DS18b20挂载到一根总线上,通过ROM搜索读取相应DS18B20的温度值。
单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。
One-Wire总线利用一根线实现双向通信,其协议对时序的要求较严格,如应答等时序都有明确的时间要求。
基本的时序包括复位及应答时序,写一位时序,读一位时序。
在复位及应答时序中,主器件发出复位信号后,要求从器件在规定的时间内送回应答信号;在位读和位写时序中,主器件要在规定的时间内读回或写出数据。
DS18B20的原理是基于以上这些特性的。
如果需要更详细的实验原理,可
以查阅相关资料或咨询专业人士获取帮助。
37. DS18B20温度传感器实验
普中STM32开发板带您进入ARM世界
DS18B20 的典型温度读取过程为:复位→发 SKIP ROM 命令( 0XCC )→发开始转换命令( 0X44)→延时→复位→发送 SKIP ROM 命令( 0XCC)→发读存储器命令( 0XBE)→连续读出两个字节数据(即温度)→ 结束。
数据线供电 2、独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线
即可实现微处理器与DS18B20的双向通讯。 3、DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,
实现组网多点测温。 4、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集
成在形如一 只三极管的集成电路内。 5、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃。
普中STM32开发板带您进入ARM世界
3.硬件电路
本实验使用到硬件资源如下: (1)D1指示灯 (2)串口1 (3)DS18B20温度传感器
D1指示灯、串口1电路在前面章节都介绍过,这里就不多说,DS18B20 温度传感器模块电路如图。
普中STM32开发板带您进入ARM世界
4.编写DS18B20温度控制程序
普中stm32开发板带您进入arm世界ds18b20外观实物如图普中stm32开发板带您进入arm世界ds18b20内部结构如图ds18b20温度传感器的内部存储器包括一个高速的暂存器ram和一个非易失性的可电擦除的eeprom后者存放高温度和低温度触发器thtl和配置寄存器
普中STM32开发板带您进入ARM世界
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DS18B20温度传感器实验Proteus仿真原理图:DS18B20内部结构:/************************* 源程序 ****************************/ #include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned char#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}sbit DQ = P3^3;sbit LCD_RS = P2^0;sbit LCD_RW = P2^1;sbit LCD_EN = P2^2;uchar code Temp_Disp_Title[]={"Current Temp : "};uchar Current_Temp_Display_Buffer[]={" TEMP: "};uchar code Temperature_Char[8] ={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x0 0};uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};uchar CurrentT = 0;uchar Temp_Value[]={0x00,0x00};uchar Display_Digit[]={0,0,0,0};bit DS18B20_IS_OK = 1;void DelayXus(uint x){uchar i;while(x--){for(i=0;i<200;i++);}}bit LCD_Busy_Check(){bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;delayNOP();result = (bit)(P0&0x80);LCD_EN=0;return result;}void Write_LCD_Command(uchar cmd) {while(LCD_Busy_Check());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0;}void Write_LCD_Data(uchar dat){while(LCD_Busy_Check());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;delayNOP();LCD_EN = 1;delayNOP();LCD_EN = 0;}void LCD_Initialise(){Write_LCD_Command(0x01);DelayXus(5);Write_LCD_Command(0x38);DelayXus(5);Write_LCD_Command(0x0c);DelayXus(5);Write_LCD_Command(0x06);DelayXus(5);}void Set_LCD_POS(uchar pos){Write_LCD_Command(pos|0x80); }void Delay(uint x){while(--x);}uchar Init_DS18B20(){uchar status;DQ = 1;Delay(8);DQ = 0;Delay(90);DQ = 1;Delay(8);DQ = 1;return status;}uchar ReadOneByte(){uchar i,dat=0;DQ = 1;_nop_();for(i=0;i<8;i++){DQ = 0;dat >>= 1;DQ = 1;_nop_();_nop_();if(DQ)dat |= 0X80;Delay(30);DQ = 1;}return dat;}void WriteOneByte(uchar dat) {uchar i;for(i=0;i<8;i++){DQ = 0;DQ = dat& 0x01;Delay(5);DQ = 1;dat >>= 1;}}void Read_Temperature(){if(Init_DS18B20()==1)DS18B20_IS_OK=0;else{WriteOneByte(0xcc);WriteOneByte(0x44);Init_DS18B20();WriteOneByte(0xcc);WriteOneByte(0xbe);Temp_Value[0] = ReadOneByte();Temp_Value[1] = ReadOneByte();DS18B20_IS_OK=1;}}void Display_Temperature(){uchar i;uchar t = 150, ng = 0;if((Temp_Value[1]&0xf8)==0xf8){Temp_Value[1] = ~Temp_Value[1];Temp_Value[0] = ~Temp_Value[0]+1;if(Temp_Value[0]==0x00)Temp_Value[1]++;ng = 1;}Display_Digit[0] = df_Table[Temp_Value[0]&0x0f];CurrentT = ((Temp_Value[0]&0xf0)>>4) | ((Temp_Value[1]&0x07)<<4);Display_Digit[3] = CurrentT/100;Display_Digit[2] = CurrentT%100/10;Display_Digit[1] = CurrentT%10;Current_Temp_Display_Buffer[11] = Display_Digit[0] + '0';Current_Temp_Display_Buffer[10] = '.';Current_Temp_Display_Buffer[9] = Display_Digit[1] + '0';Current_Temp_Display_Buffer[8] = Display_Digit[2] + '0';Current_Temp_Display_Buffer[7] = Display_Digit[3] + '0';if(Display_Digit[3] == 0)Current_Temp_Display_Buffer[7] = ' ';if(Display_Digit[2] == 0&&Display_Digit[3]==0)Current_Temp_Display_Buffer[8] = ' ';if(ng){hif(Current_Temp_Display_Buffer[8] == ' ')Current_Temp_Display_Buffer[8] = '-';else if(Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] = '-';elseCurrent_Temp_Display_Buffer[6] = '-';}Set_LCD_POS(0x00);for(i=0;i<16;i++){Write_LCD_Data(Temp_Disp_Title[i]);}Set_LCD_POS(0x40);for(i=0;i<16;i++){Write_LCD_Data(Current_Temp_Display_Buffer[i]);}Set_LCD_POS(0x4d);Write_LCD_Data(0x00);Set_LCD_POS(0x4e);Write_LCD_Data('C');}void main(){LCD_Initialise();Read_Temperature();Delay(50000);Delay(50000);while(1){Read_Temperature();if(DS18B20_IS_OK)Display_Temperature();DelayXus(100);}}欢迎您的下载,资料仅供参考!。