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’就正常了...