I have an Adafruit ADS1115 analog-to-digital converter, configured in single ended mode. I want to average over 3 sensor readings to increase the reading stability.
//initialize variables
int16_t rawData, ambient;
int i=0;
// start loop
while(i<3) {
rawData = ads.readADC_SingleEnded(0); //read from ADC
// divide sensor reading by three
// (doing so after summation will lead to an overflow)
rawData=rawData/3;
Serial.println(rawData); // print data to serial for debugging (OK)
ambient+=rawData;
i+=1;
delay(100);
Serial.println("I LIVVVVEEE"); // print text to serial for debugging (OK)
}
// Print signal (NOT OK)
Serial.print("Ambient is ");
Serial.println(ambient);
The "rawData" is printed correctly on the serial monitor. However, the value for "ambient" can be crazy: the resulting output is over an order of magnitude higher. Somehow, the summation doesn't seem to be performed correctly.