https://bbs.21ic.com/icview-3040340-1-1.html
借用此贴内容,将MCU换成该PIC18F开发板
传感器原理图
通过MCC配置端口,如下所示,启用的MCC外设库有ADC、UART1
生成代码后,在main.c添加内容
#include "mcc_generated_files/mcc.h"
#include "stdio.h"
#include "math.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;
}
void main(void)
{
unsigned int val=0;
float Rval,temp;
SYSTEM_Initialize();
while (1)
{
ADCC_StartConversion(channel_ANC0);
while(!ADCC_IsConversionDone());
val=ADCC_GetConversionResult();
printf("val=%d\n",val);
Rval=1000*((val*6.2)/(4095-val));
temp=Res_to_Tem(Rval);
printf("Temp=%f\n",temp);
LED_Toggle();
__delay_ms(500);
}
}
将传感器模块的GND,连接到开发板的GND插孔,VCC连接到VTG插孔,Out连接到RC0,运行后串口打印以下内容。
实际测试电路如下图所示,另外该例子还点亮了开发板的LED,LED按照1秒闪烁1下的节奏闪烁。
|