1377|3

1532

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【ACM32G103RCT6开发板测评】+ADC与NTC实现温度检测 [复制链接]

 

进行温度检测就离不开温度传感器,就温度传感器类型来讲,主要分为两大类,一是数字式,如DHT22、DS1802等;另一种则是模拟式,以热敏电阻等为检测器件并在ADC的配合完成温度检测。

对于DHT22这类的传感器它主要是对环境温度进行检测,其测量温度的范围比较窄,也不适于进行液体类介质的检测。对于热敏电阻类的器件,在加装外部铠甲的情况下,则可进行液体介质类的检测,并具有较宽的温度测量范围。

就ACM32G103来讲,它提供了很实用的ADC例程,以它为基础可以轻松地实现NTC温度检测。

以例程ADC_Regular_DMA为例,它是以DMA方式对通道Channel0进行单采样,所用引脚为PA0。

经程序的编译与下载,其测试效果如图1至图3所示。

 

图1 悬空态检测

 

图2 接地检测

 

图3 接VDD检测

为了使用NTC热敏电阻进行检测,其电路如图4所示。

 

图4测温电路

 

实现温度检测与显示功能的函数为:

voidADC_Test_DMA_Nchannels(void)
{
    uint32_ti, VrefP, Voltage,u,V;
    VrefP =ADC_GetVrefP();
    ADC_Init_DMA_Nchannels();
    HAL_ADC_Start_DMA(&ADC_Handle,gadcBuffer,ADC_Handle.ChannelNum);
    while(1)
    {
        HAL_ADC_Start(&ADC_Handle);
        while(!gadc1ItcConunt);
        gadc1ItcConunt =0;
        for (i = 0; i<ADC_Handle.ChannelNum; i++)
        {
            Voltage = (gadcBuffer[i]&0xFFF)*VrefP/4095;
            u=Voltage;
            if((u<=1644)&&(u>1268)) V=10+(1644-u)/37;
            if((u<=1268)&&(u>947)) V=20+(1268-u)/32;
            if((u<=947)&&(u>692)) V=30+(947-u)/25;
            OLED_ShowNum(36,5,V,4,16);
        }
        HAL_Delay(500);
    }
}

实现NTC温度检测的主程序为:

int main(void)
{
	HAL_Init();  
    SystemClock_Config();
	BSP_OLED_Init();
	Init_OLED();
    OLED_Clear();
	OLED_ShowString(20,0,"ACM32G103",16);
	OLED_ShowString(20,2,"NTC Test",16);
    OLED_ShowString(20,5,"T=      C",16);
    ADC_Regular_Channel_Test(ADC_Regular_DMA);
    while(1)
    {
    }
}

经程序的编译与下载,其测试效果如图5和图6所示。

 

图5 室温测试

 

图6 体温测试

最新回复

怎么获取积分快,有谁知道,新人获取积分,打扰了!  详情 回复 发表于 2023-12-24 07:22
点赞 关注(1)
 
 

回复
举报

7044

帖子

11

TA的资源

版主

沙发
 
这扩展板是定制的吗?你先看看OPA好不好用呀。

点评

哦,并非定制,用先前剩余的板子自行焊制而已。至于OPA回头试试,先把主体的测评结了。  详情 回复 发表于 2023-12-23 22:33
 
 
 

回复

1532

帖子

1

TA的资源

五彩晶圆(初级)

板凳
 
lugl4313820 发表于 2023-12-23 20:17 这扩展板是定制的吗?你先看看OPA好不好用呀。

哦,并非定制,用先前剩余的板子自行焊制而已。至于OPA回头试试,先把主体的测评结了。

 
 
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

4
 

怎么获取积分快,有谁知道,新人获取积分,打扰了!


 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表