打印

PIC AD采样问题

[复制链接]
4301|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljm041128|  楼主 | 2014-7-17 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16f1789 AD采样:
//模拟接口初始化d
void adinitial1(void)           
{
               
        ADCON1=0xf0;        //设置AD参数 0x1b  外基准4.096V  0x0b 内部5V基准
          ADCON2=0x0f;//0x86;        //设置AD参数//0x80
        ADCON0=0x05;
        I2c_delay(10);
}
//AD采样
unsigned int getdcadvalue(void)
{
        unsigned int temp;
    adinitial1();   
        ADCON0bits.GO = 1;
    while (ADCON0bits.GO) ;
        temp  = ADRES;
        return temp;
}
//连续采样16次
for (i=0;i<16;i++)
{
        //delayms(1);
        temp=getdcadvalue();
        if(temp<0x1000)
        {
        MainVALUEARRY[i]=temp;  //获取采样值       
        }               
}
连续采集16个点 ,采样数值从 0x02 到 0x1A 波动很大 。原始信号11-12mV。
有没有好的方式,使采样数值稳定



沙发
yklstudent| | 2014-7-18 09:27 | 只看该作者
信息太少 自己看看好 电源电压、参考电压、信号稳定吗?
程序设置正确了嘛  自己多检查检查

使用特权

评论回复
板凳
ljm041128|  楼主 | 2014-7-29 13:58 | 只看该作者
问题解决了!出在硬件上,在信号的输出端加了个10uF的电容,就好了。

使用特权

评论回复
地板
小鱼儿1045| | 2014-7-29 15:23 | 只看该作者
ljm041128 发表于 2014-7-29 13:58
问题解决了!出在硬件上,在信号的输出端加了个10uF的电容,就好了。

加这么大的电容?如果采样的物体变化速率不快的话可以,太快了,估计AD的值就比较滞后了。

使用特权

评论回复
5
ljm041128|  楼主 | 2014-7-29 16:00 | 只看该作者
我的信号变换比较慢,没关系的,速度上完全满足要求

使用特权

评论回复
6
yewuyi| | 2014-7-30 13:19 | 只看该作者
1、基准要稳定
2、输入阻抗要满足要求
3、输入信号要稳定
4、输入信号要做抗混叠滤波
5、AD转换的各项参数设置要正确,不要出现采样保持时间太短的问题

使用特权

评论回复
7
moyue| | 2014-7-30 18:23 | 只看该作者
ljm041128 发表于 2014-7-29 16:00
我的信号变换比较慢,没关系的,速度上完全满足要求

一般加个104就好了

使用特权

评论回复
8
949155525| | 2014-7-30 19:00 | 只看该作者
建议加软件滤波,你这种方法只是掩盖问题。

使用特权

评论回复
9
ZG11211| | 2014-7-30 21:03 | 只看该作者
如果对时间没有要求,建议不要连续采集,改用分时采集的方式更好,另外尽量不要采用延时的方式,只要AD参数设置正确,根本不需要延时,要不然在采集高速变化的数据时你怎么办?比如电机反电动势捕捉。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

130

主题

455

帖子

0

粉丝