这只是调试记录和解决采集大差异方法。
调试工具:1. 19999字 电压表,精度校准OK
2. UT61E+ 22000字四位半万用表 精度OK 与电压表基本一致(0.1mv跳动)
3. ADS1115 增益0-1024mv 64SPS 单次采集 无重复采样算平均。
4. MCP4725 12位DAC
出现问题:ADC1115采集电压偏低。与两表不一致。
目的:使ADC保证达到±0.5mV准确的。
调试步骤:
- 各模块电源添加电容0.1uf, DAC输出端加对地电容0.1uf. (未果)
- ADC多次采样算平均(5次), (未果)
- 通过对各段电压进行采样,统计各阶段电压 并列下表:
- 经统计,ADC1115变化接近线性。
- ADC测量压差呈上行趋势,且接近线性。
计算:
电压表:963.4-55.1=908.3;
误差:4.3-0.1=4.2;
补偿系数:=1+4.2/908.3=1.00462402289992;
for(;;)
{
if (ads.checkADS1115())
{
vTaskDelay(10);
adc0= ads.readVoltage(0)*1.004624023;
vTaskDelay(10);
Serial.print("A0:");
Serial.print(adc0);
Serial.print("mV, ");
vTaskDelay(10);
adc1= ads.readVoltage(1)*1.004624023;
Serial.print("A1:");
Serial.print(adc1);
Serial.println("mV, ");
adc2 = ads.readVoltage(2)*1.004624023;
// Serial.print("A2:");
// Serial.print(adc2);
// Serial.print("mV, ");
adc3 = ads.readVoltage(3)*1.004624023;
// Serial.print("A3:");
// Serial.print(adc3);
// Serial.println("mV");
vTaskDelay(500);
}
else
{
Serial.println("ADS1115 Disconnected!");
}
vTaskDelay(1000);
}
结果:OK ±0.5mv. 没再细调。
实测: ±0.2mv左右。