ADXL 345 Noise Issue for the use case

accelerometeri2cnoise

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:

  1. What could be the reason for this level of noise. Is it an inherent property of the adxl345 sensor
  2. Is there any other mechanism to reduce the noise level?
  3. Would you suggest any other accelerometer for this purpose? ADXL362 / BMA 180 or any other one?

Best Answer

If you need to detect the movement of a gate as in a door, then you could use a magnetometer to sense the absolute direction. When using an accelerometer, you'd need a 3-axial unit, so that you can detect the following:

  • vibrations in the vertical direction (hinges aren't perfect),

  • centrifugal acceleration in the radial direction, due to swinging of the gate,

  • tangential acceleration in the direction of the swing.

You can also use a proximity sensor to simply detect whether the gate is closed.

You'd need to tell us more about your application.