1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 用STM32单片机ADC+NTC热敏电阻采集温度的设计思路 | 附参考电路

用STM32单片机ADC+NTC热敏电阻采集温度的设计思路 | 附参考电路

时间:2022-01-16 12:36:10

相关推荐

用STM32单片机ADC+NTC热敏电阻采集温度的设计思路 | 附参考电路

目录

前言

一、热敏电阻NTC

二、参考电路

三、激励电压选择

前言

记录一些我在工作和学习过程中遇到的问题

NTC:在淘宝随便买的

单片机型号:STM32G030C8T6

目的:用单片机采集NTC温度

本文主要是介绍关于NTC激励电压的选择

一、热敏电阻NTC

热敏电阻NTC(Negative Temperature Coefficient),直译过来就是负温度系数,表示其阻值随着温度的升高而呈指数下降。热敏电阻是无源器件,自身不能产生电气输出,需要激励电压或者激励电流来测量传感器的电阻,也就是用一个小电流流过传感器以产生电压,单片机ADC采集这个电压计算出此时NTC的阻值进而推出其温度值。

二、参考电路

用单片机和NTC热敏电阻测量温度的推荐电路,这是相对简单的电路,如果要考虑稳定性和抗干扰的问题最好加一个射级跟随器,我这里用运放完成,参考电路如下:

在PCB布局的时候,NTC的信号是模拟信号,要注意布局的时候与数字信号隔离开。

三、激励电压选择

以上电路设计出来,还要考虑一个问题就是激励电压Vcc的选择,这在之前是我一直忽略的一个问题,经过我经理的讲解才知道,要想单片机采集的温度更精确,激励电压是不能随便选择的。

首先我的单片机是12位ADC,但是在实际应用中,相信很多和我一样在电子行业经验不足的,设计出来的产品是很难匹配这个数值的,不论是器件本身的误差还是来自其他电路的干扰以及信号耦合的问题,都会导致单片机最终采集到的模拟信号存在误差。经理的意思是12位ADC就看成8位来计算,但是考虑到电路比较简单相对能出现干扰的部分不多所以我还是按照10位ADC来计算。

关于精度的计算:假设单片机ADC的参考电压是0~3.3v,那么其采样范围也是0~3.3v,10位ADC分辨率为2^10 = 1024,我们可以理解成0~3.3v的电压分布在这1024个数字上,每一个数字变化的电压就表示他的精度,计算公式:3.3/2^10 = 0.003。

我简单拉了一个表格,懒得算的可以参考:(注:计算的时候要注意你设计的单片机参考电压范围)

通过简单的构思,我们不难分析出,要想NTC精度提高,我们电压变化的极值在满足单片机ADC采样范围的条件下,还要尽量靠近这个值。也就是说如果你测量的环境温度变化范围在0~99℃,那么你需要计算0℃和99℃时,其分别表示的电压在相减得出极值,看是否和单片机的ADC采样范围匹配。

先用Vcc=5v电压来计算,不同型号的NTC在不同温度情况下其电阻是不一样的,具体的RT表格可以向你买的NTC厂家要,我的型号在0℃时电阻是33k,99℃时电阻是0.5k,可以得出其电压极值为:5*33/(10+33) - 5*0.5(10+0.5) = 3.6v,这个值是不满足单片机的采样范围的,所以5v及其以上电压我不能考虑。

再来看4.096v电压,同理计算极值4.096*33/(10+33) - 4.096*0.5(10+0.5) =2.94,满足条件可以选择。

极值满足我们还要看ADC的精度是否能达到要求,首先在电压4.096v的情况下得出的极值为2.94v,那么其0.1℃的精度为 2.94/1000 = 0.00294,参照上表单片机的精度表格,与10位ADC可以比较匹配,综合考虑下是可以选择4.096的作为Vcc激励电压的。

懒得算的,我也简单拉了一个表格,仅供参考:

这就是关于用单片机和NTC采集温度的设计过程,如果有不对的地方欢迎纠正!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。