搜索
bottom↓
回复: 15

如何扩展AD采样数据,让其在数码管显示不跳动呢?

[复制链接]

出0入0汤圆

发表于 2012-1-5 10:35:11 | 显示全部楼层 |阅读模式
使用51单片机内部10位ADC采样后,把数据送3位数码管显示,可是最后一位老有跳动,延时送显示也一样跳动,但是人为送一个固定数值就不跳动,说明不是送显示的问题,也不是延时的问题,应该是 ADC采样后的数据有跳动的问题。可是在AD采样中我也做了软件滤波,采样4次,去掉一个最大值,再去掉一个最小值,然后求平均值,再送数码管显示。不知道有有什么方法如何扩展AD采样数据,让其显示不跳动呢?

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2012-1-5 12:15:39 | 显示全部楼层
少显示几位.

出0入0汤圆

 楼主| 发表于 2012-1-5 13:30:09 | 显示全部楼层
数码管是3位的必须要显示3位的百分数,比如0.0%,20.0&,59.3%,100%等,可是10位ADC转换值范围是0---1024,少显示不了啊,我的考虑是把采样值想办法扩大到到14位或者14位以上,比如14位的话,转换值范围是0-16384,这样显示3位就可以把不需要的数丢掉,而一般跳动的数都是在丢掉的那部分里,但是我的系统对实时性要求又很高,所以不想使用过采样,只是想把送显示的数据扩大,而不扩大参与控制的数值,比如采样得到的数值是629,让629这个数据参与控制,同时再把629扩大去送显示。不知有什么好办法没有。

出0入42汤圆

发表于 2012-1-5 14:22:33 | 显示全部楼层
采样一个基准看看跳不跳. ADC前面的缓冲,ADC的基准等都有可能让他跳. 10位很容易做到偶尔动一个字的. 如果ADC本身就这样子只能多采样求平均了. 或者外挂一个12位的吧.14位那么高没什么意思.

出0入0汤圆

发表于 2012-1-5 14:41:45 | 显示全部楼层
用最小分度表示 比如每次跳动 0.5%

即  ((Value+100)/200) * 200
1 == 0.5%  这样可以抑制 数据不停的跳动

出0入0汤圆

 楼主| 发表于 2012-1-5 15:32:53 | 显示全部楼层
谢谢各位出谋划策,我再试验一下,也好好思考思考,有结果就告诉大家。

出0入0汤圆

发表于 2012-1-5 16:02:20 | 显示全部楼层
回复【楼主位】linlh
-----------------------------------------------------------------------

精度舍得下一些

出0入0汤圆

发表于 2012-1-5 16:20:55 | 显示全部楼层
基准要稳
采样要多

出0入0汤圆

 楼主| 发表于 2012-1-6 16:44:53 | 显示全部楼层
按照4楼得提示,我昨天在while(1)循环中做了了测试,不断循环采集电压基准,然后循环送数码管显示,结果数据很稳定,没有任何跳动,这说明电压基准是稳定的,今天想再试试5楼ele_eye的方法,就是不太明白下面的公式含义。
((Value+100)/200) * 200
1 == 0.5%  这样可以抑制 数据不停的跳动
如果Value是采集到得10位数据,那么是不是把((Value+100)/200) * 200 这个数值送显示呢,1 == 0.5%又是什么意思?请ele_eye给解下惑,谢谢。

出0入0汤圆

发表于 2012-1-6 18:02:54 | 显示全部楼层
回复【9楼】linlh  
-----------------------------------------------------------------------

就是说跳动1的话是0.5%

出0入0汤圆

 楼主| 发表于 2012-1-6 18:24:29 | 显示全部楼层
AD采样到得数据如何处理呢?按照5楼得公式((Value+100)/200) * 200  ,不就是等于(Value+100)吗?难道把AD转换值Value再加个100后送数码管显示吗?

出0入0汤圆

发表于 2012-1-6 19:02:03 | 显示全部楼层
顶起来

出0入0汤圆

 楼主| 发表于 2012-1-12 10:46:21 | 显示全部楼层
前几天发现,直接测基准电压有个问题,就是数据显示1024,很稳定,但这是被测电压和基准相同,造成数据。后来又换了一种方法测AD的基准,也就是单片机的电源,没有直接测VCC,而是把VCC分压到1.625V采集了一下数据,发现送数码管显示的时候,偶尔第三位会跳1个字。最终我的解决方法还是,定时器延时300毫秒送显示,基本能稳定,虽然也跳动,但是跳动不是很闪眼,跳动前后的数据肉眼能稳定看到,可以说的过去,唯一的遗憾就是,改变采样电压的过程中,显示数据不是连续跟着变换了,而是最后一位数字间隔2-3个字的变换。不知道谁还有跟好的方法能解决显示既稳定,而且跟随被采样电压变换时数据也能连续变换这个问题。

出0入0汤圆

发表于 2012-1-12 12:17:55 | 显示全部楼层
5楼的办法是有效的,另外楼主你就真的如此信任单片机内部的10位AD?即便是10位AD,你就能准确的做到10位的精度么?

出0入0汤圆

发表于 2012-7-10 12:26:46 | 显示全部楼层
wuguoyan 发表于 2012-1-6 18:02
回复【9楼】linlh  
-----------------------------------------------------------------------

您给的这个算法能具体解释下吗 我也很迷惑   
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 18:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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