打印
[开发工具]

【新定义MCU开发板测评】 + ADC数据采集与温度检测

[复制链接]
629|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2022-11-22 22:04 编辑

#申请原创#

新定义NBK-RD8x3x 开发板内部具有ADC数据采集功能,将它与LCD屏相结合就可进行电压测量。
以检测通道2的电压为例,其程序如下:
void main(void)
{
    unsigned int ADCValue = 0x0000;
         P0CON = 0xFF;
         P0PH  = 0x00;
         P1CON = 0x00;
         P1PH  = 0x00;
         P2CON = 0xFF;
         P2PH  = 0x00;
         P3CON = 0xFF;
         P3PH  = 0x00;
         P4CON = 0xFF;
         P4PH  = 0x01;
         P5CON = 0xFF;
         P5PH  = 0x00;
         GPIO_Init(GPIO0, GPIO_PIN_4 | GPIO_PIN_5 |GPIO_PIN_6, GPIO_MODE_OUT_PP);
         GPIO_Init(GPIO2, GPIO_PIN_2, GPIO_MODE_OUT_PP);
         GPIO_Init(GPIO5, GPIO_PIN_3, GPIO_MODE_OUT_PP);
         GPIO_Init(GPIO4, GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5, GPIO_MODE_OUT_PP);
         Delay(100);
         Lcd_Init();
         LCD_Clear(RED);
         BACK_COLOR=RED;
         LCD_Picturea();
         LCD_ShowChinese(80,10,0,16,YELLOW);
         LCD_ShowChinese(96,10,1,16,YELLOW);
         LCD_ShowChar(112,10,':',0,YELLOW);
         LCD_ShowChinese(80,30,2,16,YELLOW);
         LCD_ShowChinese(96,30,3,16,YELLOW);
         LCD_ShowChar(112,30,':',0,YELLOW);
         LCD_ShowChinese(80,50,4,16,YELLOW);
         LCD_ShowChinese(96,50,5,16,YELLOW);
         LCD_ShowChar(112,50,':',0,YELLOW);
         SC_ADC_Init();
         while(1)
         {
                     ADCValue = ADC_GetConversionAverageValue(ADC_SamplesNum_EightTimes);
                     LCD_ShowNum(120,10,ADCValue,4,YELLOW);
                     Delay(1000);
         }
}

经程序的编译与下载,其满量程的采集结果如图1所示。
1 满量程检测
此外,在配置NTC热敏电阻的情况下,还可进行温度的检测。由于手头没有相应的功能模块,只好临时搭建了一个功能板,其这个硬件构成如图2所示。
2 硬件构成
使用NTC热敏电阻进行温度检测的方法有2种,一是采用查表法,另一个是采用公式法。
这里采用的是一种混合的处理方式,即基于关键点的差值处理法。因为查表法比较专用存储空间,而公式法则需要。
在电压检测电路的基础上,实现温度检测的主要程序为:
while(1)
{
          ADCValue = ADC_GetConversionAverageValue(ADC_SamplesNum_EightTimes);
          u=5.0*ADCValue/4095;
        ...
          if((u<=1.922)&&(u>1.435)) u=20+(1.922-u)/0.048;
          if((u<=1.435)&&(u>1.050)) u=30+(1.435-u)/0.038;
        ...
          sd=u;
          LCD_ShowNum(120,10,sd,4,YELLOW);
          Delay(1000);
}
在室温情况下,使用微控器的检测值如图3所示,而使用开发板所检测的结果则如图4所示。
3 室温检测值
4 实际检测值

在测量体感温度时,微控器的检测值见图5所示,而开发板的检测结果则如图6所示。
5体温检测值
6实际检测值


通过比对,其检测结果基本相近,是可以采用的。


使用特权

评论回复
沙发
belindagraham| | 2023-3-10 16:36 | 只看该作者
这个ADC的分辨率是多少?              

使用特权

评论回复
板凳
earlmax| | 2023-3-10 18:04 | 只看该作者
采集的是热电偶的数据吗?              

使用特权

评论回复
地板
jinglixixi|  楼主 | 2023-3-10 22:04 | 只看该作者
earlmax 发表于 2023-3-10 18:04
采集的是热电偶的数据吗?

NTC热敏电阻的

使用特权

评论回复
5
jinglixixi|  楼主 | 2023-3-10 22:05 | 只看该作者
belindagraham 发表于 2023-3-10 16:36
这个ADC的分辨率是多少?

12位ADC

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

453

主题

2752

帖子

38

粉丝