回答

收藏

[评测分享] 【TL7218X开发板】DS18B20温度采集

#板卡评测 #板卡评测 655 人阅读 | 0 人回复 | 2025-02-22

本帖最后由 eefocus_3995051 于 2025-2-22 12:42 编辑

在物联网和智能家居项目中,温度监测始终是一个热门话题无论是环境监控、设备散热管理还是智能温控系统,精准的温度数据都是不可或缺的DS18B20凭借其高精度、易操作和低成本的特点成为了众多开发者和爱好者心目中的理想选择本次楼楼将使用TL7218开发板对DS18B20进行温度的采集。

数据手册:点我跳转

DS18B20是一款单总线数字温度传感器,它采用单总线接口,仅需一条数据线即可实现通信,极大地简化了硬件连接和布线成本DS18B20的测量范围为-55℃至+125℃,在-10℃至+85℃的范围内精度可达±0.5℃,完全能够满足大多数日常应用场景的需求,此外DS18B20还具备独特的存储功能它内部有两个寄存器:温度寄存器和配置寄存器温度寄存器用于存储当前测量的温度值,而配置寄存器则允许用户设置温度的分辨率DS18B20支持9位至12位的温度数据输出,分辨率越高,测量精度越高,但测量时间也会相应增加,在默认的12位分辨率下,测量时间约为750毫秒。

大家好,俺又来了,这次不点灯了,读个温度


实物展示:




DS18B20的硬件连接非常简单,它有三个引脚:VDD(电源正极)、GND(电源负极)和DQ(数据线),相信大家都会,就不说啦。





读取温度的过程大概分为以下几个步骤:

  • 重置DS18B20:通过调用ds18b20_reset函数,我们重置DS18B20传感器,准备进行通信
  • 跳过序列号操作:发送命令0xCC跳过读序列号的操作
  • 启动温度转换:发送命令0x44启动DS18B20的温度转换过程
  • 等待温度转换完成:通过delay_us函数,我们等待大约600微秒,确保温度转换完成
  • 再次重置DS18B20:在读取温度值之前再次重置DS18B20
  • 读取温度寄存器:发送命令0xBE读取温度寄存器,DS18B20的温度值存储在两个寄存器中,分别是低字节和高字节
  • 读取温度值:通过ds18b20_read_one_char函数,我们分别读取温度值的低字节和高字节
  • 组合高低字节:将读取到的高字节和低字节组合成完整的温度值




在许多应用中,直接从传感器读取的数据可能会受到噪声的影响,导致数据波动较大为了提高数据的稳定性和准确性,我们通常需要对原始数据进行滤波处理滑动平均滤波是一种简单而有效的滤波方法,它可以有效地平滑数据波动,减少噪声的影响。




通过上述代码我们可以轻松地从DS18B20温度传感器读取温度数据,并进行了简单的滤波处理,然后直接通过串口打印出来。




打开串口工具就可以看到通过DS18B20采集到的实时温度,猛哈一口仙气,温度飙升,所以我们的代码是没有问题的,可以正常采集温度。


以上就是楼楼本次要分享的内容,这款传感器不仅价格亲民,而且操作简单易上手,它在精度要求不是特别高的场景中表现十分出色,能够很好地满足日常使用需求,当我们采集到温度之后就可以通过蓝牙、WIFI等方式将温度上传到终端设备方便我们随时查看、记录和处理,好啦,本次分享结束!





分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

146 积分
1 主题
+ 关注
热门推荐
关闭

站长推荐上一条 /3 下一条