I am working on 3 axis accelerometer application and one of the application is to detect when it is on reset i.e. without any motion. I am polling accelerometer data at 1 Hz and checking it for change in reading to know it is in motion in any axis.
However, the method seems to be very simple i.e. comparing the previous value with current value to detect the change that i want to be sure if it is the correct way to do it.
I need help and suggestions in this regard that if there are any efficient method to detect when accelerometer is in motion and when it is not. Due to hardware design constants, i can only poll the data and cant use any interrupt pins of accelerometer.
Accelerometers don't detect motion - they detect acceleration. Theoretically you could be travelling at 100mph and the accelerometers could read zero in every axis. In practice, small changes in orientation of a moving object should be detectable but you may need to poll it more than once a second. Many years ago I designed a system intended to detect lack of movement and polled the sensor every 50ms which worked well.
Accelerometers don't detect motion - they detect acceleration. Theoretically you could be travelling at 100mph and the accelerometers could read zero in every axis. In practice, small changes in orientation of a moving object should be detectable but you may need to poll it more than once a second. Many years ago I designed a system intended to detect lack of movement and polled the sensor every 50ms which worked well.
Thanks for reply and i understand the need of polling at higher than 1sec rate. Also i want to detect as you said lack of movements by polling accelerometer data. Right now i am just comparing the current value of one axis reading with previous reading every second to see if there is significant change to determine if accelerometer is not at rest.
I just wanted to confirm if this simple method is sufficient to detect lack of movement or there should be some mathematical modeling involved?
I would suggest that you use all 3 axes, not just one - that will give you a better reliability in detection when it is stationary. I used a two axis accelerometer and it worked well (it was in a wristwatch). I don't think trying to combine the three axis readings to obtain a vector is necessary. You would combine them if you were trying to find out the acceleration as an absolute number (and could then also determine the direction of the acceleration) but you are not trying to do that so a simple comparison of each axis should be fine.