I am building a solution where I want my MCU to wake up based on a trigger generated by accelerometer after detecting an activity. There are a number of samples available for this and I am able to generate triggers with ease.
The challenge is with the use case where the trigger has to be generated with even a small activity. Basically using it for movement of a gate.
Because the acceleration generated is very less due to the gate movement, I am not able to define a threshold that would be adequate to detect such activity with reliability. If I lower it, I get a number of false positives and if I increase it, I miss the event altogether.
There are a few threads about how to reduce the noise level and I have tried them out.
- I am using 3.3V input from Arduino Uno board. When checked with oscilloscope, I get a variance of about 150 MV in the voltage.
- The board I am using is from SPARKFUN with ADXL 345
- Threshold setting for activity detection is about 20 [scale of 0 and 255]
- I have used both stream mode for FIFO
- Have also played with min and max data rate levels with no effect
- Using I2C interface. Though, I am not much concerned about reading the actual acceleration levels.
My queries are:
- What could be the reason for this level of noise. Is it an inherent property of the adxl345 sensor
- Is there any other mechanism to reduce the noise level?
- Would you suggest any other accelerometer for this purpose? ADXL362 / BMA 180 or any other one?