[51单片机] C8051F410片内温度传感器怎么检测温度?

[复制链接]
2733|20
 楼主| Big学渣 发表于 2017-1-6 11:04 | 显示全部楼层 |阅读模式
只在手册上查到一个公式VTEMP=2.95TEMP+900,那只要知道温度传感器的输出电压VTEMP就能知道温度,但是VTEMP该怎么检测?请大神给个思路,谢谢
ayb_ice 发表于 2017-1-6 12:27 来自手机 | 显示全部楼层
用adc啊,单位应该是mv
 楼主| Big学渣 发表于 2017-1-6 15:26 来自手机 | 显示全部楼层
ayb_ice 发表于 2017-1-6 12:27
用adc啊,单位应该是mv

您能具体讲讲思路吗,是adc转换后再采温度传感器的输出电压吗,就是得到的数字量我再转成模拟量然后算温度,是这样吗?
ayb_ice 发表于 2017-1-6 16:56 来自手机 | 显示全部楼层
Big学渣 发表于 2017-1-6 15:26
您能具体讲讲思路吗,是adc转换后再采温度传感器的输出电压吗,就是得到的数字量我再转成模拟量然后算温 ...

是的,用adc测量温度传感器通道的电压,再根据电压反推算出温度
linqing171 发表于 2017-1-7 20:42 | 显示全部楼层
ADtemp = (Vtemp / Vref ) * AD_MAX
貌似是 Vtemp *4096 / 2.5 ???
 楼主| Big学渣 发表于 2017-1-9 09:36 来自手机 | 显示全部楼层
ayb_ice 发表于 2017-1-6 16:56
是的,用adc测量温度传感器通道的电压,再根据电压反推算出温度

好的,谢谢您
 楼主| Big学渣 发表于 2017-1-9 09:37 来自手机 | 显示全部楼层
linqing171 发表于 2017-1-7 20:42
ADtemp = (Vtemp / Vref ) * AD_MAX
貌似是 Vtemp *4096 / 2.5 ???

您好,AD_TEMP,AD_MAX都是什么量啊
 楼主| Big学渣 发表于 2017-1-17 17:24 来自手机 | 显示全部楼层
ayb_ice 发表于 2017-1-6 16:56
是的,用adc测量温度传感器通道的电压,再根据电压反推算出温度

您好,c8051f410的片内温度传感器能测量外部环境温度吗?
ningling_21 发表于 2017-1-17 18:15 | 显示全部楼层
Big学渣 发表于 2017-1-17 17:24
您好,c8051f410的片内温度传感器能测量外部环境温度吗?

只能检测芯片本身的温度
 楼主| Big学渣 发表于 2017-1-18 09:58 来自手机 | 显示全部楼层
ningling_21 发表于 2017-1-17 18:15
只能检测芯片本身的温度

就是需要测量一个外部模块的温度,但是板子上又没有特别搭出温度传感器电路,老大让我用内部的温度传感器测外部模块,精读要求倒不高,原程序上也写的有测量外部模块温度的句子但是是错的,在网上查到一份资料《基于c8051f片内传感器测量环境温度的方法研究》感觉也不靠谱。
ningling_21 发表于 2017-1-18 11:40 | 显示全部楼层
Big学渣 发表于 2017-1-18 09:58
就是需要测量一个外部模块的温度,但是板子上又没有特别搭出温度传感器电路,老大让我用内部的温度传感器 ...

什么样的外部模块? 一般用18B20或热敏电阻
 楼主| Big学渣 发表于 2017-1-18 16:18 来自手机 | 显示全部楼层
ningling_21 发表于 2017-1-18 11:40
什么样的外部模块? 一般用18B20或热敏电阻

就是一个索尼的摄像模块,老大说只需要一个大概的温度就行,就不折腾板子了,用片内温度传感器测出的温度减去单片机芯片本身的温升就行
ningling_21 发表于 2017-1-19 08:22 | 显示全部楼层
Big学渣 发表于 2017-1-18 16:18
就是一个索尼的摄像模块,老大说只需要一个大概的温度就行,就不折腾板子了,用片内温度传感器测出的温度 ...

检测410大概的温度就行了
 楼主| Big学渣 发表于 2017-1-19 10:23 来自手机 | 显示全部楼层
ningling_21 发表于 2017-1-19 08:22
检测410大概的温度就行了

那用到的公式是五楼说的那个吗?
ningling_21 发表于 2017-1-19 12:28 | 显示全部楼层
Big学渣 发表于 2017-1-19 10:23
那用到的公式是五楼说的那个吗?

摄氏度=k*电压+b
k=2.95mV/摄氏度;
b=-900/2.95 摄氏度=-305
电压=AD*xxx;
 楼主| Big学渣 发表于 2017-1-19 14:01 来自手机 | 显示全部楼层
ningling_21 发表于 2017-1-19 12:28
摄氏度=k*电压+b
k=2.95mV/摄氏度;
b=-900/2.95 摄氏度=-305

Vtemp=2.95*TEMP+900(mv),英文手册上查到的这个公式,然后Vtemp/Vref=ADtemp/AD_MAX,算出来的温度差不多可以接受
ningling_21 发表于 2017-1-19 14:48 | 显示全部楼层
Big学渣 发表于 2017-1-19 14:01
Vtemp=2.95*TEMP+900(mv),英文手册上查到的这个公式,然后Vtemp/Vref=ADtemp/AD_MAX,算出来的温度差 ...

差不多就行了
 楼主| Big学渣 发表于 2017-1-20 09:55 来自手机 | 显示全部楼层
ningling_21 发表于 2017-1-19 14:48
差不多就行了

嗯,谢谢大神
ddllxxrr 发表于 2017-1-20 14:23 | 显示全部楼层
一般内部温度传感器都是固定的ADC通道,楼主只要采积ADC的值然后用公式算就可以了
 楼主| Big学渣 发表于 2017-1-20 15:41 来自手机 | 显示全部楼层
ddllxxrr 发表于 2017-1-20 14:23
一般内部温度传感器都是固定的ADC通道,楼主只要采积ADC的值然后用公式算就可以了 ...

嗯,问题解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

34

帖子

0

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