专栏名称: 面包板社区
面包板社区——中国第一电子人社交平台 面包板社区是Aspencore旗下媒体,整合了电子工程专辑、电子技术设计、国际电子商情丰富资源。社区包括论坛、博客、问答,拥有超过250万注册用户,加入面包板社区,从菜鸟变大神,打造您的电子人脉社交圈!
目录
相关文章推荐
游戏研究社  ·  被困空间站的宇航员,有条件打游戏吗? ·  2 天前  
触乐  ·  快乐的纳什均衡丨触乐怪话 ·  3 天前  
51好读  ›  专栏  ›  面包板社区

采用NTC进行温度检测

面包板社区  · 公众号  ·  · 2024-05-18 20:01

正文

本文来自面包板社区《灵动 Mini-F5333开发板》免费测评活动。
MM32F5333内置了2 个 12 位模拟/数字转换器,单个 ADC的最高转换率可达 3MSPS。
ADC1 和ADC2 最多均可达14 个外部通道,其中 12 个ADC1 和 ADC2的通道在引脚排布上是复用的,因此共有16 个可用的 ADC 外部输入引脚。对于这些复用引脚,可以将ADC1 和 ADC2 并行使用来获得最高 6MSPS 的转换率。
此外,ADC2 还配有 2 个内部通道,分别连接到温度传感器和电压传感器。
在工作方式上,ADC 支持单次单周期和连续扫描转换模式。
通过厂家所提供的例程可学习其使用发及功能的验证,在使用板载信号模拟电路的情况下,可进行多通道数据采集的检测,其效果如图2所示。
图1信号模拟电路


图2检测效果

在掌握ADC的用法后,可将NTC热敏电阻与其配合实现温度的检测。NTC热敏电阻的检测电路如图3所示,为了避开信号模拟电路所占用的通道,热敏电阻的信号被连接到PA6。

图3测温电路
实现该通道数据采集及温度变换的函数为:
void ADC_InjectionChannel_Polling_Sample(void){ float RVxVoltage]; int u,V; ADC_Configure(); while (1) { ADC_SoftwareStartInjectedConvCmd(ADC1, ENABLE); while (RESET == ADC_GetFlagStatus(ADC1, ADC_FLAG_INJEOS)); ADC_ClearFlag(ADC1, ADC_FLAG_INJEOS); RVxVoltage= (float)ADC_GetInjectedChannelConvertedValue(ADC1, ADC_InjectedChannel_3) * (float)3.3 / (float)4096.0; u=(int)(RVxVoltage*1000); 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; ... printf("\r\nVoltage=%0.3f mV T=%d C", RVxVoltage[3],V); OLED_ShowNum(36,5,V,3,16); PLATFORM_DelayMS(500); }}
在连接串口通信的情况下,其测试效果如图4所示。

图4测试结果

实现图5和图6所示效果的主程序为:
int main(void){ PLATFORM_Init(); GPIO_OLED(); Init_OLED(); OLED_Clear(); OLED_ShowString(20,0,"MM32F5333 ",16); OLED_ShowString(20,2,"NTC TEST",16); ADC_InjectionChannel_Polling_Sample(); while (1);}
图5室温检测
图6体温检测
相较于数字式的传感器模块,采用NTC进行温度检测会有更宽的温度检测范围,可用于工业控制等领域。
本文来自面包板社区《灵动 Mini-F5333开发板》免费测评活动。



END


电路图集

常用模拟电路 | 运放电路 | 保护电路 | EMC标准电路 | 电源电路大全 | 实用控制电路 | 单片机应用电路 | 波形发生电路 | 汽车电路图大全 | 555电路 | 小家电电路 | 9大基本模块电路 | 原理图英文缩写 | 电路图符号

入门基础

电路基础 | 数字电路 | 示波器基础 | 万用表使用 | 信号完整性 | 地线知识 | 嵌入式基础 | STM32基础知识总结 | C语言 知识点







请到「今天看啥」查看全文