//EXPONENTIAL MOVING AVERAGE #include #include VL53L0X sensor; const float alpha = 0.1; double lastAvg = 0.0; void setup() { Serial.begin(9600); Wire.begin(); sensor.setTimeout(500); if (!sensor.init()) { Serial.println("Failed to detect and initialize sensor!"); while (1) {} } // Start continuous back-to-back mode (take readings as // fast as possible). To use continuous timed mode // instead, provide a desired inter-measurement period in // ms (e.g. sensor.startContinuous(100)). sensor.startContinuous(); } void loop() { int i = 0; int cur_sample = 0; int cur_avg = 0; cur_sample = sensor.readRangeContinuousMillimeters(); cur_avg = (cur_sample*alpha) + ((lastAvg)*(1-alpha)); u Serial.print(cur_avg); lastAvg = cur_avg; delayMicroseconds(300); if (sensor.timeoutOccurred()) { Serial.print(" TIMEOUT"); } Serial.println(); }