搜索
bottom↓
回复: 15

mega128模数转换,得出的数值浮动太大,请大侠帮忙

[复制链接]

出0入0汤圆

发表于 2013-2-18 14:28:40 | 显示全部楼层 |阅读模式
如果用满量程为1024的话,那么几乎取样得出的数据波动会在200+以上,请问造成这样大的波动的因素是什么呢?采样通道上的数据值是比较稳定的,就是ad转换后,显示的数据波动太厉害了。


/********************************************************************
* 名称 : read_adc(void)
* 功能 : 采集adc0和adc1通道上的值
* 输入 : 无
* 输出 : 无
***********************************************************************/
void read_adc(void)
{   
    uchar i,j;  


    ADCSRA=0x00;//清零
    delay_ms(10);
    ADMUX=0x00;//选择外部参考电压,通道0
    delay_us(5);
    ADCSRA|=(1<<ADEN)|(1<<ADSC)|0x07; //使能ad转换,128分频
    delay_ms(100);   //延时等待转换完成
    adc0_l=ADCL;//取出数据低八位
    delay_us(5);
    adc0_h=ADCH;  
    delay_us(500);
    adc0_data=((adc0_h<<8)|adc0_l);
    delay_ms(100);

    table_adc0[0]=adc0_data/1000;//处理ad采样值,以便进行显示
    delay_us(5);
    table_adc0[1]=adc0_data%1000/100;
    delay_us(5);
    table_adc0[2]=adc0_data%100/10;
    delay_us(5);
    table_adc0[3]=adc0_data%10;
    delay_ms(100);      
    set_address(3,1);//设定显示的地址
    delay_us(20);//延时不可取消
    for(i=0;i<4;i++)
    {
        write_data(table_adc0[i]+0x30);//将ad0采样值在液晶上显示出来
        delay_us(5);//必须加延时
    }
     


    delay_ms(100);

    ADCSRA=0x00; //清零
    delay_ms(10);  
    ADMUX=0x01;//选择外部参考电压,通道1
    delay_us(5);
        ADCSRA|=(1<<ADEN)|(1<<ADSC)|0x07;   //ad使能,128分频
    delay_ms(100);   
    adc1_l=ADCL;
    delay_us(5);     
    adc1_h=ADCH;   
    delay_us(500);
    adc1_data=((adc1_h<<8)|adc1_l);//可以进行修正
    delay_ms(100);

    table_adc1[0]=adc1_data/1000;//处理ad1数据
    delay_us(5);
    table_adc1[1]=adc1_data%1000/100;
    delay_us(5);
    table_adc1[2]=adc1_data%100/10;
    delay_us(5);
    table_adc1[3]=adc1_data%10;
    delay_ms(100);
   
    set_address(3,2);//设定显示地址
    delay_us(20);

    for(j=0;j<4;j++)
    {
        write_data(table_adc1[j]+0x30);//显示通道1上的采样值
        delay_us(5);
    }
    delay_ms(100);
}

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-2-18 17:12:47 | 显示全部楼层
而且还有个怪现象就是通道1采样的值比通道2采样的值的波动要小很多,不知道各位有没有遇到过。以前用51采样几乎很少波动的撒

出0入0汤圆

发表于 2013-2-18 20:25:39 | 显示全部楼层
是不是相应的IO口要设置城浮空输入

出0入0汤圆

发表于 2013-2-18 21:33:56 | 显示全部楼层
还有,你附近有没有干扰源?数字量?开关量?

出0入0汤圆

 楼主| 发表于 2013-2-19 08:22:27 | 显示全部楼层
shuishuo615 发表于 2013-2-18 20:25
是不是相应的IO口要设置城浮空输入

DDRF=0xf0;//设置为输入
PORTF=0xf0;//拉低(这个不管是上拉还是拉低,我调试的结果都是一样的)

不知道大侠说的拉低是不是指的这个?

出0入0汤圆

 楼主| 发表于 2013-2-19 08:24:26 | 显示全部楼层
shuishuo615 发表于 2013-2-18 21:33
还有,你附近有没有干扰源?数字量?开关量?

干扰源原本是有的,原先用的是贴片的lmv358,最后发下性能不好,就改用直插LMV358就没有干扰了。

出0入0汤圆

发表于 2013-2-19 08:26:56 来自手机 | 显示全部楼层
多次测量求平均值

出0入0汤圆

 楼主| 发表于 2013-2-19 08:30:15 | 显示全部楼层
AVRTDK 发表于 2013-2-19 08:26
多次测量求平均值

其中通道一检测时波动是从0v对应的数值开始波动,这样求平均值也会误差较大的

出0入0汤圆

发表于 2013-2-19 08:59:19 | 显示全部楼层
我遇到过,找不到原因,
强力滤波吧,简单办法就是软件平均,还能对付

出0入0汤圆

 楼主| 发表于 2013-2-19 09:26:50 | 显示全部楼层
kite2006 发表于 2013-2-19 08:59
我遇到过,找不到原因,
强力滤波吧,简单办法就是软件平均,还能对付

之前用51+ad0804采集的数据都是很稳定的了。现在用这个avr调试好久了,如果要是单独用通道1的话,数值波动比较小,但是一旦用通道0就会出现很大的波动。还得慢慢调试啊!

出0入0汤圆

发表于 2013-2-18 14:28:41 | 显示全部楼层
ipoqing 发表于 2013-2-19 08:22
DDRF=0xf0;//设置为输入
PORTF=0xf0;//拉低(这个不管是上拉还是拉低,我调试的结果都是一样的)

我没用过avr的mcu,没有floatinog input这种模式吗?

你用示波器看看
1 采样信号不连接mcu时候,有没有抖动

2 采样信号连接MCU后,的波形情况

出0入0汤圆

发表于 2013-2-19 14:14:43 | 显示全部楼层
一般是硬件问题 你先用单片机采一下稳压源的电压 ,看输出是否稳定。

出0入0汤圆

 楼主| 发表于 2013-2-19 17:38:22 | 显示全部楼层
多谢各位的热心解答,问题已经基本弄明白了,还是放大后有高次谐波干扰造成的,在采集的数据终端又加了滤波电路,结果有明显改善

出0入0汤圆

 楼主| 发表于 2013-2-19 17:39:10 | 显示全部楼层
小赵zyong 发表于 2013-2-19 14:14
一般是硬件问题 你先用单片机采一下稳压源的电压 ,看输出是否稳定。

谢谢,确实是硬件的问题

出0入0汤圆

 楼主| 发表于 2013-2-19 17:40:11 | 显示全部楼层
shuishuo615 发表于 2013-2-19 11:55
我没用过avr的mcu,没有floatinog input这种模式吗?

你用示波器看看

谢谢,是硬件电路的问题,我在数据终端加了滤波电路就有明显的改善

出0入0汤圆

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

本版积分规则

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

GMT+8, 2024-7-24 05:23

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

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