int main() { ADS1115 adc; adc.setMode(ADS1115_MODE_SINGLESHOT); adc.setRate(ADS1115_RATE_860); uint16_t muxes[] = {ADS1115_MUX_P0_NG, ADS1115_MUX_P1_NG, ADS1115_MUX_P2_NG, ADS1115_MUX_P3_NG}; float results[ARRAY_SIZE(muxes)] = {0.0f}; int i = 0; while (true) { adc.setMultiplexer(muxes[i]); float conversion = adc.getMilliVolts(); results[i] = conversion; i = (i + 1) % ARRAY_SIZE(muxes); for (int j = 0; j < ARRAY_SIZE(muxes); j++) { printf("A%d: %.4fV ", j, results[j] / 1000); } printf("\n"); } return 0; }
/** * @brief initialize ADS1115 * @return true, if succeed, otherwise false. */ bool initADS1115(ADS1115& adc) { adc.init(); adc.setMode(ADS1115_MODE_SINGLESHOT); adc.setRate(ADS1115_RATE_860); return true; }
/** * @brief get ADS1115 data and print them. */ void getADCData(ADS1115& adc) { uint16_t muxes[] = {ADS1115_MUX_P0_NG, ADS1115_MUX_P1_NG, ADS1115_MUX_P2_NG, ADS1115_MUX_P3_NG}; float results[ARRAY_SIZE(muxes)] = {0.0f}; int i = 0; while (true) { adc.setMultiplexer(muxes[i]); float conversion = adc.getMilliVolts(); results[i] = conversion; i = (i + 1) % ARRAY_SIZE(muxes); for (int j = 0; j < ARRAY_SIZE(muxes); j++) { printf("A%d: %.4fV ", j, results[j] / 1000); } printf("\n"); } }