0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ML51单片机通过ADC驱动NTC传感器测量温度实例

Q4MP_gh_c472c21 来源:嵌入式ARM 作者:嵌入式ARM 2021-01-26 16:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

NTC传感器如下图所示,NTC的阻抗随着温度升高而降低。手册给出了阻抗到温度的转换公式。

e9b777ae-5f64-11eb-8b86-12bb97331649.png

ea8815bc-5f64-11eb-8b86-12bb97331649.png



我们可以通过ML51单片机提供的12位ADC来读取该串联电阻的分压,从而根据参考电阻计算出传感器的阻抗,然后利用手册的温度计算公式计算出温度。下图是手册给出的几个常用计算常数B,可根据测量的范围合理的选择,用于提高测量精度。

ebdb1f4a-5f64-11eb-8b86-12bb97331649.png


实现温度转换

根据手册提供的公式:R=R0 exp B(1/T - 1/T0);其中R是待测电阻,R0是某个温度T0 K下的已知电阻,B是温度传感器常数。

通过以上公式反推T = temp=1/((1/T0)+(log(RT/R0)/B));

代入数据测试,例如T0=25摄氏度时候R0=10K欧姆,主意以上代入实际计算时候要使用绝对温度,单位开尔文。

经过测试上述公式可以完成验算,即,正确。

根据手册该型号的B常数在25到50度之间采用3380,25到80之间采用3428,25到85之间采用3434,25到100摄氏度之间采用3455.

为了方便,本项目采用3455计算。

完成代码如下所示。

//***********************************************************************************************************//  File Function: ML51 series ADC software trigger on shot demo code//***********************************************************************************************************#include "ML51.h"#include "math.h"#include "NTC.h"/******************************************************************************The main C function.  Program execution startshere after stack initialization.******************************************************************************/


void main (){  unsigned int ADCRESULT;        float Rval;        float temp;
/*For UART0 P0.5 TXD output setting* include gipo.c in Library for GPIO mode setting* include uart.c in Library Setting for UART0*/    MFP_P31_UART0_TXD;                              // UART0 TXD use P0.5    P31_QUASI_MODE;                                 // set P0.5  as Quasi mode for UART0 trasnfer    UART_Open(24000000,UART0_Timer3,115200);        // Open UART0 use timer1 as baudrate generate and baud rate = 115200    ENABLE_UART0_PRINTF;  /*  ADCS to trig ADC convert  * include adc.c in Library for ADC initial setting*/    ADC_Open(ADC_SINGLE,1);                                        //Enable ADC_CH4    ADC_ConvertTime(3,7);//* find ADC result in ADC interrupt*/                                                while(1)    {        set_ADCCON0_ADCS;                           // Software trig adc start        while((ADCCON0|CLR_BIT7)==CLR_BIT7);         // wait ADCF = 1;        ADCRESULT = (ADCRH<<4)+ADCRL;        printf("
 ADC result = %d  ", ADCRESULT);        Timer0_Delay(24000000,100,5000);                                Rval=1000*((ADCRESULT*6.2)/(4095-ADCRESULT));                                printf("
 Rval=%d Ohm",(unsigned int)Rval);                                temp=Res_to_Tem(Rval);                                printf("
 temp=%.2f",temp-K);                                printf("
----------------");                                           }  }

将阻抗转换为温度作为一个独立的头文件NTC.h
#define K 273.15#define T0 (25.0+K)#define R0 10000.0#define B 3455.0        
/*电阻值换算到温度adc_val:NTC当前的阻抗值,单位欧姆返回值:摄氏度*/
float Res_to_Tem(float adc_val){        float temp;        temp=1/((1/T0)+(log(adc_val/R0)/B));        return temp-K;}
这样就可以直接调用得出摄氏度了。本例子,采用串口打印的测量结果如下图所示。

eddbf206-5f64-11eb-8b86-12bb97331649.png

手册还给出的查表方法,给出了几个特殊点,如下图所示

f18adcd2-5f64-11eb-8b86-12bb97331649.png


绘制出曲线如下图所示。


点评:NTC测量温度成本低,响应迅速,只需要使用1路ADC通道即可。比数字类型的温度计驱动更加容易,使用更加灵活,还可以自己实现校准功能。

责任编辑:xj

原文标题:实用应用案例:ML51单片机通过ADC驱动NTC传感器测量温度

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NTC
    NTC
    +关注

    关注

    7

    文章

    496

    浏览量

    54287
  • adc
    adc
    +关注

    关注

    100

    文章

    7380

    浏览量

    553769
  • 51单片机
    +关注

    关注

    277

    文章

    5714

    浏览量

    132096
  • ML
    ML
    +关注

    关注

    0

    文章

    154

    浏览量

    35391

原文标题:实用应用案例:ML51单片机通过ADC驱动NTC传感器测量温度

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    高精度NTC热敏电阻芯片(NTC温度传感器芯片)

    NTC热敏电阻芯片安装到不同材质和形状的传感头中,将传感头安装固定在需要测试温度的区域,可以非常方便和精确地进行温度
    的头像 发表于 08-11 10:23 995次阅读
    高精度<b class='flag-5'>NTC</b>热敏电阻芯片(<b class='flag-5'>NTC</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>芯片)

    单片机实例项目:DS18B20温度传感器

    单片机实例项目:DS18B20温度传感器,推荐下载!
    发表于 06-03 20:59

    NTC温度传感器有哪几个温度特性

    NTC温度传感器是由NTC(负温度系数)热敏电阻作为温感元件组装而成的温度
    的头像 发表于 04-02 09:46 1100次阅读
    <b class='flag-5'>NTC</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>有哪几个<b class='flag-5'>温度</b>特性

    NTC温度传感器工作原理及应用领域分析

    什么是NTC温度传感器 NTC温度传感器(Negative Temperature Coeff
    的头像 发表于 03-11 15:51 3304次阅读
    <b class='flag-5'>NTC</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>工作原理及应用领域分析

    0.3s高灵敏NTC温度传感器用于消费电子

    在消费电子领域中,温度是一个重要参数,它影响着许多系统的性能和稳定性。为了能快速测温,行业通常会使用NTC温度传感器去精确测量
    的头像 发表于 02-23 16:20 826次阅读

    超高温NTC温度传感器

    超高温NTC温度传感器是一种耐高温的温度传感器,其电阻阻值会随着温度升高而快速降低,这特性可以使
    的头像 发表于 02-11 13:13 841次阅读
    超高温<b class='flag-5'>NTC</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>

    NTC温度传感器时刻监测变频

    在变频中,NTC温度传感器是非常重要的元器件。通常用于监测变频内部温度,以进行
    的头像 发表于 02-08 14:32 1025次阅读
    <b class='flag-5'>NTC</b><b class='flag-5'>温度</b><b class='flag-5'>传感器</b>时刻监测变频<b class='flag-5'>器</b>

    浅谈新能源汽车驱动电机与NTC温度传感器

    新能源汽车驱动电机NTC温度传感器 新能源汽车动能主要来自电动车电池、驱动电机和电力电子设备。电池为驱动
    的头像 发表于 01-06 11:49 1606次阅读

    浅谈用于储能的NTC温度传感器

    储能NTC温度传感器在电池储能系统中扮演着重要角色,能够实时监测电池温度,预防过热和安全事故发生。随着电池储能技术不断发展,对NTC
    的头像 发表于 01-04 10:13 1137次阅读

    51单片机温度报警

    电子发烧友网站提供《51单片机温度报警.zip》资料免费下载
    发表于 12-30 14:16 4次下载

    宠物家电中的NTC温度传感器

    NTC温度传感器在宠物家电中发挥着重要作用,其能够实时监测和控制宠物生活环境温度,为宠物们创造一个更加舒适生活环境。正确使用和维护宠物家电中NTC
    的头像 发表于 12-25 10:46 946次阅读

    智能马桶水温NTC温度传感器

    热水的流量,提高水温。使用户可以根据个人喜好来调节水温,享受到舒适洗涤体验。 NTC温度传感器在智能马桶中的应用不仅提高了用户体验,还具有节能优势。传统马桶在调节水温时通常是通过时间控
    发表于 12-20 11:55

    NTC热敏电阻与数字温度传感器的比较

    NTC热敏电阻与数字温度传感器温度测量领域都有其独特的应用和优势,以下是两者的比较: 一、工作原理 N
    的头像 发表于 12-17 18:04 2281次阅读

    浅谈水温测量型消费电子如何选择NTC温度传感器

    非常重要,传感器类型、灵敏度和测量范围会影响到设备选型。 水温测量型****消费电子NTC温度传感器
    发表于 12-11 10:23

    0.3s高灵敏NTC温度传感器用于消费电子

    在消费电子领域中,温度是一个重要参数,它影响着许多系统的性能和稳定性。为了能快速测温,行业通常会使用NTC温度传感器去精确测量
    发表于 12-09 09:23