# How to do the average on 10 samples each time

Hi I would like to understand what I have to change in this sketch.
My aim is to take every time 10 output of the imu (10 y accelerations), to do the mean and to test if that mean could be over on a threshold. I don't understand the reason why the average in serial monitor is always 0. Can you help me please?
I am using an Arduino Uno rev 2

``````#include <Arduino_LSM6DS3.h>

int total = 0;                  // the running total
int average = 0;                // the average

float Athr =  -0.1;
float Bthr =  -0.2;

void setup() {
// initialize serial communication with computer:
Serial.begin(9600);
IMU.begin();
// initialize all the readings to 0:
}
}

void loop() {
float x,y,z;
// advance to the next position in the array:

// if we're at the end of the array...
// ...wrap around to the beginning:
}

// calculate the average:
// send it to the computer as ASCII digits
Serial.println(average);
delay(1);        // delay in between reads for stability
}

``````

You've got mixed float and integer (specifically, "int") arithmetic.
What is the typical magnitude of a y reading?

I need to put the float value because it varies between -2.0 to 2.0 more o less (less in my case)

Imagine you're not moving the device.
Your x and y accelerations will be close to zero, and your z acceleration will be close to 1g (or -1g) depending on orientation.
If you convert your nearly zero y acceleration to an int (as you are doing) it will be zero.
Sum ten zeroes, and divide by ten, you get zero.

The OP could use words like "arduino moving average float" in an internet search engine and they might find what they are looking for.