这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 企业专区» TI» 【MSP焕新大作战】课程3+任务1+数码管显示DS18B20温度并超温报警

共2条 1/1 1 跳转至

【MSP焕新大作战】课程3+任务1+数码管显示DS18B20温度并超温报警

高工
2024-05-12 22:07:46 打赏

一.实验任务

用DS18B20实现环境温度的采集,并输出到数码管进行显示,当监测到的温度超过设定温度时用蜂鸣器进行报警。

参考技术资料:

技术资料下载链接

MSPM0L1306技术资料链接 :https://www.ti.com.cn/product/cn/MSPM0L1306#tech-docs

LP-MSPM0L1306开发板资料链接:https://www.ti.com.cn/tool/cn/LP-MSPM0L1306

MSPM0-SDK — MSPM0 Software Development Kit (SDK) 链接:https://www.ti.com.cn/product/cn/MSPM0L1306#software-development

驱动库API文档:

file:///D:/02ProgramFiles/TISDK/mspm0_sdk_1_30_00_03/docs/english/driverlib/mspm0l11xx_l13xx_api_guide/html/modules.html

KEIL5 DFP pack(KEIL 必须,CCS非必须):

https://downloads.ti.com/msp430/esd/MSPM0-CMSIS/keil/latest/exports/TexasInstruments.MSPM0L_DFP.1.1.0.pack?tracked=1

开发工具:

官方库函数: MSPM0-SDK

编程IDE:CCSTUDIO-Code Composer Studio

IDE、配置、编译器或调试器:SYSCONFIG

MSPM0L1306开发板: LaunchPad™-MSPM0L1306

二.硬件设计和原理

  1. 对于数码管的连接和硬件设计可以参考我的课程二的任务,这里不再重复。

  2. 蜂鸣器,温度传感器模块和数码管相关的硬件和对应接线如下图所示:

    1715522538520.png硬件原理介绍


  3. 蜂鸣器的硬件设计原理

    蜂鸣器通常可分为有源蜂鸣器和无源蜂鸣器,无源蜂鸣器需要输出类似方波的波形来控制蜂鸣器发生,而有源蜂鸣器通上电源即可发出声音,具体的原理如下图:

    1715867719646.png

    我们这里用的蜂鸣器就底部图片所示的有源蜂鸣器,其相关的控制电路原理如下图所示:

    1715868412712.png

    这里用到的蜂鸣器原理是右侧的低电平触发,也即当控制蜂鸣器的引脚PA15设置为低电平时,蜂鸣器发出声音,当控制蜂鸣器的引脚PA15设置为高电平的时候蜂鸣器不发生,关闭。因此在初始化配置蜂鸣器的引脚的时候,为了初始化之后蜂鸣器不发声,需要把控制蜂鸣器的引脚PA15初始化设置为高电平。当需要控制蜂鸣器发声的时候,只需要设置控制引脚为低电平即可。硬件的连接接线如下图所示:

    1716123859473.png

  4. 板载温度传感器的硬件设计原理:

    温度传感器有数字量的也有模拟量的,模拟量的又分负温度系数的和正温度系数的,所谓的正负就是温度和电阻的关系,负温度系数是当温度升高的时候传感器的电阻值是变小的,正温度系数是当温度升高的时候传感器的电阻值是变大的,通常用到的有PT100和PT1000。详情如下图所示:

    1715869315114.png进行温度采集设计电路设计的时候,通常有两种:一种是电压源,一种是电流源,通常用到的是电压源,当采用电压源的时候电路也有两种,一种是温度传感器接到电压源的一端,一种是温度传感器接到地的一端,后一种偏多。具体如下图所示:

    1715869528209.png在这里我们可以使用开发板上温度传感器进行温度的开发验证测试,相关硬件介绍如下图所示:

    1715869716396.png

    板载温度采集的设计原理为温度变化转化为阻值变化,然后转化为电压变化,根据电压电阻的比例关系,可以计算出温度传感器上的电压V=VCC*R126/(R125+R126),具体的硬件原理如下图所示

    1716122248281.png

    根据温度采集的电压和温度传感器的温度电阻曲线,以及曲线的计算公式可以计算出对应的温度值,具体的计算详情如下图所示:

    1716123545423.png

  5. 对于温度传感器DS18B20模块的硬件设计原理,相关的模块硬件连接接线如下图所示:

    1716123761599.png

    这里选用的DS18B20的传感器是DALLAS的,相关的参数如下图所示:

    1716124936218.png相关详细的数据手册可以在网上下载。





三.软件开发设计实现

  1. 利用板载的温度传感器的软件设计配置syscfg的参数设计如下图所示:

    1716123002650.png

  2. 板载温度传感器的关键软件开发代码如下图所示:

    1716122821127.png

  3. 另外需要在主初始化里面加入中断使能和启动转换: NVIC_EnableIRQ(ADC12_0_INST_INT_IRQN); DL_ADC12_startConversion(ADC12_0_INST);后面即可在主函数里面进行温度的采集 TmpVal=ConvertToTemp();以及显示 Disp_TempData(TmpVal);

  4. ADC的中断处理程序如下:

    1716123573735.png

  5. 蜂鸣器的相关syscfg的设计配置界面如下:

    1716125311757.png

  6. DS18B20相关的DS18B20的syscfg的配置界面设计如下所示:

    1716125270334.png

  7. 关键的软件代码如下所示:

    1716125801470.png1716125855906.png

1716125886243.png

主运行程序里面的关键代码如下图所示:

1716126000445.png

这里采集温度之后显示,当采集到的温度大于30℃的时候进行蜂鸣器的报警警告。

四.实现的结果

程序编写好之后编译一下,查看底部的信息栏显示,如果有error错误可以双击到指定的位置,查看错误的信息,根据提示进行纠正,直到编译没有错误,然后下载程序,调试没有问题下载之后的开始显示的问题如下图所示:

微信图片_20240519220523.jpg

显示现在的室温,夏天了,温度基本是正常,当给温度传感器加热超过30℃的时候,蜂鸣器开始报警,这时的结果如下图所示:

微信图片_20240519220528.jpg




关键词: DS18B20 数码管

专家
2024-05-13 00:58:54 打赏
2楼

感谢楼主分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]