去年利用Arduino配合ADS1115 AD转换模块对一个微伏级输出的测试箱进行电压读取,配合上位机进行采样的数据进行数字滤波。
ADS1115是具有16位分辨率的高速AD转换芯片,可调增益,最小测量电压为0.0078125mV(约7.8uV),其实7.8uV对我来说还是大了。但没办法,精度越高成本也越高,个人玩家干不起来。
软件上使用了Adafruit为ADS系列芯片做好的库Adafruit_ADS1015,上手简单。ADS1115采样后的数据通过串口输出到上位机上进行处理。上位机需要发送一个“G”命令来获取数据,过程简单的不得了。
/* This module is simplily read data from ADS1115 and transfer to serial port.
* Author: Daniel Gee
* Date: 2019-06-08
*/
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads1115(0x48); // construct an ads1115 at address 0x48
float volt = 0.0;
const int16_t duration = 1;
int16_t adc_data