This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1115不是连续变化的 怎么回事

Other Parts Discussed in Thread: ADS1115

我用ADS1115 采集电压   反应不灵敏  它不是连续变化的     还有参考电压怎么配置

  • 你好,

    请问所需采集的电压最大频率是多少?ADS1115的Config Register 配置是怎么样的?

    能否上传一下你的测试数据?

    ADS1115的参考电压是内部固定的,配置PGA即可以配置满量程输入电压范围,具体请参考数据手册13页Table 3. PGA Gain Full-Scale Range。

  • 我给的电压是固定的   实际1.218V   采到的是1.215       实际1.484   采到的是1.455     实际是0.951    采到的是0.959  ……  采到的值是我经过换算后得到的

    adcx=GetData_ADS1115();      

     LCD12864_DATA3(4,0, adcx);    

     temp=(float)adcx*((float)2048*2/65535);   

     LCD12864_DATA1(3,3,(uint)(temp));

    我还发现一个规律    采到的值得mV位只会是1  3  5  7  9       比如只会有0.951  0.955   0.959  0.963  0.967   都是相差4     它不会连续变化    而且实际当中的误差有时不只是4mV偶尔10mV

  • 配置是这样的

    void Configure_ADS1115()
    {
    uchar i=0;
    Init_Data[0] =0x90; // 地址 + 写命令(写地址0x90,读地址0X91)
    Init_Data[1] =0x01; // 指向配置寄存器
    Init_Data[2] =0x54; // 配置字高字节,
    Init_Data[3] =0x83; // 配置字低字节,选择转换速率即通信速率
    SCL_H;
    I2CforADS1115_Start();
    for(i=0;i<4;i++)
    {
    I2CforADS1115_WriteByte(Init_Data[i]);
    _NOP();
    }
    I2CforADS1115_Stop();
    }

  • 您好,我怀疑您只读到了数据的高8位,没有读到低8位,你再仔细查查您的程序。

  • 为什么我用ads1115的时候,能写,也能读,但是读的不是0000就是0FFF,呢,不知道为什么

  • 同问,不是0就是满量程,程序是别人给的149的例程,但是下进去没有值 ,寄存器的值和时序应该都是对的。如果你的问题解决了麻烦可以给我一份例程吗,谢谢 609188535@qq.com

  • yuan wang3 说:
    同问,不是0就是满量程,程序是别人给的149的例程,但是下进去没有值 ,寄存器的值和时序应该都是对的。如果你的问题解决了麻烦可以给我一份例程吗,谢谢 609188535@qq.com

    个人遇过这个问题,

    写/读 Config Register都是对的,

    电路配置也都对,

    就是读值完全不对,

    试到最后是‘换一颗IC’就正常了...