找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8845|回复: 16
收起左侧

STC15W系列单片机AD转换为什么数据很不稳定

  [复制链接]
回帖奖励 30 黑币 回复本帖可获得 30 黑币奖励! 每人限 1 次(中奖概率 10%)
ID:496214 发表于 2019-7-28 11:16 | 显示全部楼层 |阅读模式
本帖最后由 sdsslh 于 2019-7-28 11:26 编辑

小弟最近在做一个项目,使用的单片机是STC15W4k58s4,然后做ADC,一个温度传感器,一个压力传感器,电路没问题,输入到单片机自带ADC中进行AD转换的时候,串口接收到的数据为什么很不稳定,我使用了内部bandgap精确计算参考电压,而且使用了7805对单片机进行5V的供电,而且我在输入ADC的时候还加了滤波电容,我用万用表实测的输入ADC的电压非常稳定,可是输入ADC以后,输出的数据却很不稳定,温度传感器数据不稳定,但是压力传感器数据较为稳定。ADC使用的是查询方式,双通道,温度传感器ADC后误差在+-0.05mv,请问这是怎么回事,求大神解答,方便看我的代码的话,求大神留下个联系方式,谢谢
回复

使用道具 举报

ID:496214 发表于 2019-7-28 11:25 | 显示全部楼层
奇怪的是,我这个压力传感器传来的数据就比较稳定,但是温度传感器经AD转换后误差在+-0.05mv左右
回复

使用道具 举报

ID:496214 发表于 2019-7-28 15:19 | 显示全部楼层
aaaaaa。 发表于 2019-7-28 14:49
楼主,你的问题解决了吗

没有解决
回复

使用道具 举报

ID:123289 发表于 2019-7-29 09:08 | 显示全部楼层
通道开关提前打开,稍等一会再起动AD。
回复

使用道具 举报

ID:388197 发表于 2019-7-29 14:26 | 显示全部楼层
有些ADC采样有个类似电容充电的过程,不知道你用的那个是不是这种,当你信号源内阻比较大而采样的保持时间又不够时就会发生这种情况.一般加大采样的保持时间会有改善.或者在信号和ADC接口之间用运放搭个跟随器试试,之前我试过用一个100K的NTC热敏电阻和1个1K的精密电阻分压测量温度,在高温时,采集的数据基本跳动很小,比较准确.但在室温时,数据跳动就很大.
还有种办法就是,比如实际需要12位精度,用16位的ADC,采样后,丢掉低4位.这样采集到的数据就基本不跳动了,当然这种做法成本较高.

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:213173 发表于 2019-7-29 17:02 | 显示全部楼层

没有看到你的程序及电路图,不好直接判断。数据有小幅波动是正常的,通常需要加软件滤波。环境共模干扰无所不在。如果可能你试试20ms取样10~20次分别保存结果,去掉最大和最小值再取平均值,通常可以获得稳定的ADC数据。
回复

使用道具 举报

ID:155507 发表于 2019-7-29 19:36 | 显示全部楼层
如果可以的话,你采样的次数要多一些,130次,然后再减去一个最大值和一个最小值,再除以128,这效果会好一点
不管是参考电压还是采样的平均次数,都尽可能的和2的次幂有关
回复

使用道具 举报

ID:62363 发表于 2019-7-29 22:53 | 显示全部楼层
我前用两天STC15W408AS做气压仪表遇到的问题是内部bandgap参考电压误差较大,弃之。用7805供电,采集AD后直接用5V换算,满足了要求。每个周期采集八遍AD,冒泡排序后,取中间四个求平均值。
回复

使用道具 举报

ID:256277 发表于 2020-2-21 14:07 | 显示全部楼层
STC15W408AS,内部BandGap参考电压 我按照例程读取这个参考电压,根本不稳定一直在变化!

由于内部BandGap参考电
//压很稳定,  哈哈哈,搞笑!
回复

使用道具 举报

ID:679425 发表于 2020-2-21 15:02 | 显示全部楼层
STC15W408AS,内部BandGap参考电压
回复

使用道具 举报

ID:452392 发表于 2020-4-26 14:19 来自手机 | 显示全部楼层
stm32f107的12位ad抖动在100-200mv,你这个已经很好了,12位的话也就1mv的精度
回复

使用道具 举报

ID:452392 发表于 2020-4-26 14:21 来自手机 | 显示全部楼层
sdsslh 发表于 2019-7-28 11:25
奇怪的是,我这个压力传感器传来的数据就比较稳定,但是温度传感器经AD转换后误差在+-0.05mv左右

0.05mv的话精度已达到14位了是不是弄错了0.05V
回复

使用道具 举报

ID:727683 发表于 2020-5-11 20:37 | 显示全部楼层
万用表的内阻10M ohm左右,ADC不准一般与采样时间,输入电阻有关,因为没有看到电路图不好判定,如果实在不准可以使用补偿的方式解决,一般单片机ADC模块都有补偿的解释,y=ax+b的方式, 希望对你有帮助,如何希望进一步了解,可以相互学习.
回复

使用道具 举报

ID:911776 发表于 2021-5-18 15:27 | 显示全部楼层
本帖最后由 yhy08090 于 2021-5-19 11:12 编辑
Camel2020 发表于 2020-5-11 20:37
万用表的内阻10M ohm左右,ADC不准一般与采样时间,输入电阻有关,因为没有看到电路图不好判定,如果实在不 ...

我也有这个问题,我的adc口没有外接什么电路,就单单adc口进行采样,我用的STC官方提供的STC15对应的ADC查询方式的demo,求哪位知道的大神帮忙指点哈子
回复

使用道具 举报

ID:879348 发表于 2021-5-18 17:15 | 显示全部楼层
这好像是51架构单片机的通病,快速切换通道导致数据不准,我用过很多种51好像都有这个问题
回复

使用道具 举报

ID:911776 发表于 2021-5-19 10:51 | 显示全部楼层
本帖最后由 yhy08090 于 2021-5-19 13:40 编辑
wufa1986 发表于 2021-5-18 17:15
这好像是51架构单片机的通病,快速切换通道导致数据不准,我用过很多种51好像都有这个问题

那都是怎么处理这些不准确的数据的?我现在加了软件滤波,数据仍然一直波动很大
回复

使用道具 举报

ID:61140 发表于 2022-4-5 17:28 | 显示全部楼层
打开ADC电源后适当延时,一个通道处理完后再适当延时,很方便的方法.
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表