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下的节奏闪烁。
|