[开发工具] CuriosityNano测评报告】+室内温度测量

[复制链接]
1275|4
 楼主| gaoyang9992006 发表于 2020-11-10 00:46 | 显示全部楼层 |阅读模式
https://bbs.21ic.com/icview-3040340-1-1.html
借用此贴内容,将MCU换成该PIC18F开发板

传感器原理图
通过MCC配置端口,如下所示,启用的MCC外设库有ADC、UART1


生成代码后,在main.c添加内容

  1. #include "mcc_generated_files/mcc.h"
  2. #include "stdio.h"
  3. #include "math.h"
  4. #define K 273.15
  5. #define T0 (25.0+K)
  6. #define R0 10000.0
  7. #define B 3455.0      

  8. /*
  9. 电阻值换算到温度
  10. adc_val:NTC当前的阻抗值,单位欧姆
  11. 返回值:摄氏度
  12. */

  13. float Res_to_Tem(float adc_val)
  14. {
  15.         float temp;
  16.         temp=1/((1/T0)+(log(adc_val/R0)/B));
  17.         return temp-K;
  18. }

  19. void main(void)
  20. {
  21.     unsigned int val=0;
  22.     float Rval,temp;

  23.     SYSTEM_Initialize();
  24.   
  25.     while (1)
  26.     {
  27.        ADCC_StartConversion(channel_ANC0);
  28.         while(!ADCC_IsConversionDone());
  29.         
  30.         val=ADCC_GetConversionResult();
  31.         printf("val=%d\n",val);
  32.         Rval=1000*((val*6.2)/(4095-val));
  33.         temp=Res_to_Tem(Rval);
  34.         
  35.         printf("Temp=%f\n",temp);
  36.         
  37.         LED_Toggle();
  38.         __delay_ms(500);
  39.      }

  40. }
将传感器模块的GND,连接到开发板的GND插孔,VCC连接到VTG插孔,Out连接到RC0,运行后串口打印以下内容。

实际测试电路如下图所示,另外该例子还点亮了开发板的LED,LED按照1秒闪烁1下的节奏闪烁。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| gaoyang9992006 发表于 2020-11-10 00:48 | 显示全部楼层
另外,Temp的单位是摄氏度,忘了打印单位了,不影响啊,不再更了。
里面有晴雨 发表于 2020-11-10 08:52 | 显示全部楼层
楼主用的是什么开发环境,我也想玩一下,看看是否好用。
 楼主| gaoyang9992006 发表于 2020-11-10 10:13 | 显示全部楼层
里面有晴雨 发表于 2020-11-10 08:52
楼主用的是什么开发环境,我也想玩一下,看看是否好用。

用的MPLAB X 可以图形化配置,不过是基于JAVA平台的那种,所以电脑配置低了稍微有点卡。
xuanhuanzi 发表于 2020-11-10 22:37 | 显示全部楼层
666,点赞。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

2052

主题

16403

帖子

222

粉丝
快速回复 在线客服 返回列表 返回顶部