ds18b20温度传感器读出的温度值为80几度,但是实际温度只有30度,是怎么回事?

全部回答4
默认 最新
  • 温度传感器坏了
    0 点赞
  • 哇,好难传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。传感器的特点包括:微型化、数字化、智能化、多功能化、系统化、网络化。它是实现自动检测和自动控制的首要环节。传感器的存在和发展,让物体有了触觉、味觉和嗅觉等感官,让物体慢慢变得活了起来。通常根据其基本感知功能分为热敏元件、光敏元件、气敏元件、力敏元件、磁敏元件、湿敏元件、声敏元件、放射线敏感元件、色敏元件和味敏元件等十大类。
    0 点赞
  • 楼上的回答比较全面,我补充两点。一是DS18B20初始化后,延时是否够用,读取温度时对时序要求比较严格。二是看DS18B20接地是否完好。
    0 点赞
  • 温度误报警的分析和解决方案 1.故障描述: 根据现场的反馈和仿真模拟测试,故障情况如下: 单板反复热插拔,温度读数变为85C。但重复插拔或重新上电,又可恢复正常读数。 2.故障分析: 温度传感器 DS18S20 在测试模式下,会将温度寄存器的数值设为 85C。此时如果直接读取DS18S20的温度,得到的结果就是85C。 在单片机和 DS18S20 进行通讯过程中,如果通讯被打断,比如有高一级中断发生或其它事件如瞬时断电/上电或ESD 冲击, 则DS18S20的通讯线可能挂死并进入测试模式。此时的状态,既可能无法和DS18S20 通讯,也可能始终读到 85C的数据或其它随机数据。 3.解决方案: 为避免以上情况的发生,可在每次单片机和 DS18S20 进行通讯读取温度的子程序的前面增加以下语句,确保 DS18S20 从总线挂死或测试模式下退出来,并完成正常的温度转换和数据上报。 Reset / Presence Detect 总线初始化启动/检测过程 0xCC /忽略ROM码 (或 0x55 /核对ROM码,) 0x64 / 内部复位指令,将温度寄存器设为85C初始值,退出测试模式 Reset / Presence Detect 总线初始化启动/检测过程 0xCC /忽略ROM码 (或 0x55 /核对ROM码,) 0x44 / 温度转换指令,进行温度转换并将结果存入温度寄存器 请特别注意,内部复位指令 64H 执行后必须紧跟着执行温度转换指令 44H,因为 64H 指令在复位 DS18S20 并使其退出测试模式时,给温度寄存器设置的初始值是 85C。在执行了温度转换指令44H 之后,温度寄存器的数据才是实际的温度值。
    0 点赞

没有更多内容了

返回顶部
产品求购 求购