NTC传感器如下图所示,NTC随着温度的升高,阻抗降低。手册给出了阻抗到温度的转换公式。 我们可以通过ML51单片机提供 12位ADC读取串联电阻的分压,根据参考电阻计算传感器的阻抗,然后用手册的温度计算公式计算温度。下图是手册中给出的几个常用计算常数B,可根据测量范围合理选择,提高测量精度。 实现温度转换 手册中提供的公式: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 starts
here 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.5as 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("\n ADC result = %d ", ADCRESULT);
Timer0_Delay(24000000,100,5000);
Rval=1000*((ADCRESULT*6.2)/(4095-ADCRESULT));
printf("\n Rval=%d Ohm",(unsigned int)Rval);
temp=Res_to_Tem(Rval);
printf("\n temp=%.2f",temp-K);
printf("\n----------------");
}
}
将阻抗转换为温度作为一个独立的头文件 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;
}
这样就可以直接调用得出摄氏度了。本例子,采用串口打印的测量结果如下图所示。 手册还给出的查表方法,给出了几个特殊点,如下图所示 绘制出曲线如下图所示。 点评:NTC测量温度成本低,响应迅速,只需要使用1路ADC通道即可。比数字类型的温度计驱动更加容易,使用更加灵活,还可以自己实现校准功能。 --------------------- 作者:gaoyang9992006 链接:https://bbs.21ic.com/icview-3046276-1-1.html 来源:21ic.com 此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。