标题: 求助:STM32F103 采集LM35温度偏差太大 [打印本页]

作者: qyljzjxl    时间: 2022-8-7 14:03
标题: 求助:STM32F103 采集LM35温度偏差太大
实验条件:STM32F103最小系统板(网上10几元那种)、LM35模块    使用了PB0引脚,ADC采集温度值。
关键程序代码:
while(1){         
      /* Printf message with AD value to serial port every 1 second */
          AD_value = ADC_ConvertedValue;
                AD_value = (AD_value/4096)*3.3*1000/10;
                temperature=AD_value;        
    printf("The current temperature value =%d 0C  \r\n", temperature);  
          delay_ms(1000);   /* delay 1000ms */
        }
实验效果:可以输出温度,但与实际温度相差近一倍,不知道怎么回事?求助!



作者: Y_G_G    时间: 2022-8-7 15:02
temperature=(float) AD_value*330/4096;
作者: coody_sz    时间: 2022-8-7 15:34
先用数字万用表测量LM35的输出,正常了吗?
作者: qyljzjxl    时间: 2022-8-7 21:03
万用表测试电压就不正常
作者: qyljzjxl    时间: 2022-8-7 21:03
coody_sz 发表于 2022-8-7 15:34
先用数字万用表测量LM35的输出,正常了吗?

万用表测试电压就不正常
作者: qyljzjxl    时间: 2022-8-7 21:04
电压就不正常
作者: qyljzjxl    时间: 2022-8-7 21:13
Y_G_G 发表于 2022-8-7 15:02
temperature=(float) AD_value*330/4096;

还是不正确AD_value = ADC_ConvertedValue[1];
                temperature=(float) AD_value*330/4096;
                printf("The current X temperature value =%4.2f V \r\n", temperature);          结果仍然60多,实际温度31度               
作者: Hephaestus    时间: 2022-8-7 23:39
处理AD_value这个值之前先把AD_value的值打印出来看看是不是你想要的。
作者: TTQ001    时间: 2022-8-7 23:53
确保 ADC 参考电压为 5V 或 3.3V。
作者: Y_G_G    时间: 2022-8-8 12:57
qyljzjxl 发表于 2022-8-7 21:13
还是不正确AD_value = ADC_ConvertedValue[1];
                temperature=(float) AD_value*330/4096;
                printf(" ...

要是我的话,这种问题根本就不会专门发个帖子
1,先用万用表测量LM35对应当前温度输出的电压
2,先通过串口或者数码管,OLED都可以,把ADC的数字量显示出来
这基本就能找到问题的点了
你都通过串口输出转换后的温度值了,为什么不把ADC的数字量也显示一下呢?也许是哪个计算环节出问题了呢?
作者: qyljzjxl    时间: 2022-8-8 13:44
TTQ001 发表于 2022-8-7 23:53
确保 ADC 参考电压为 5V 或 3.3V。

如果使用电位器,输出电压完全正确,使用了开发板的3.3V引脚
作者: Y_G_G    时间: 2022-8-8 15:34
LM35供电是多少V的?是不是也是用3.3V,LM35供电电压:



作者: coody_sz    时间: 2022-8-8 17:42
qyljzjxl 发表于 2022-8-7 21:03
万用表测试电压就不正常

那只能说,你的LM35不正常了。注意,我说的是LM35输出空载时测量,不能接ADC输入,因为可能你的ADC输入没有设置正确。
作者: Hephaestus    时间: 2022-8-8 20:22
既然电压不正常,你给我们看软件没有任何意义。贴出电路图才是正经事。
作者: qyljzjxl    时间: 2022-8-9 16:03
就是网上购买的LM35模块,3个引脚那种,正接开发板3.3V了,负极接开发板地了,输出端接开发板B0脚了,是电路问题吗,但是接电位器完全没有问题呀!
作者: qyljzjxl    时间: 2022-8-9 16:04
实在不行,等以后再买个模块试试吧,不会坏了吧。
作者: Y_G_G    时间: 2022-8-9 21:17
qyljzjxl 发表于 2022-8-9 16:03
就是网上购买的LM35模块,3个引脚那种,正接开发板3.3V了,负极接开发板地了,输出端接开发板B0脚了,是电 ...

是图片不清楚还是别的原因呢?
作者: Hephaestus    时间: 2022-8-9 21:26
qyljzjxl 发表于 2022-8-9 16:04
实在不行,等以后再买个模块试试吧,不会坏了吧。

你看楼主15楼的回复,LM35根本就没工作,买一万个模块都没用!
作者: qyljzjxl    时间: 2022-8-10 18:01
感谢大神耐心讲解,它确实是没有工作,不插这个模块,也是这样输出,为什么它不工作呢,在ARDUIO 开发板上,使用外接9V电池供电,确定模块+接在5V电压上(万用表测过),为什么就不运行呢?
作者: qyljzjxl    时间: 2022-8-10 19:29
查网上资料,直接用电源接模块正极和负极,输出脚万用表测试310MV左右,和室温30度差不多,为什么接板子上就不工作?感谢所用人耐心解答,先放一放,等以后再买个模块试试




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1