2017-08-26 02:40 AM
I am reading data through I2C. The calculations performed are correct (Converting high and low bytes into a 12 bit value and using 195mg/digit to convert data into scales of +/- 400g level.).
There is a noise of about +/-10g in all the three axis. So the graph will always be fluctuating when the device is kept still.
Neglecting the +/- 10g noise, the X and Y axis data are fine. But Z axis data is always shifted by about 8g. So the Z axis data has an average of 8g, when the device is upright and kept still, which had to be 1g. So the graph of Z axis will be fluctuating at 8g with.
Solved! Go to Solution.
2017-08-28 02:08 AM
Can you please share your procedure to convert the low and high byte into acceleration value? The noise seems to me too high.
At the 400 g full scale the offset can be quite high, you can remove it by using high-pass filter or make a calibration in you micro-controller.
2017-08-28 02:08 AM
Can you please share your procedure to convert the low and high byte into acceleration value? The noise seems to me too high.
At the 400 g full scale the offset can be quite high, you can remove it by using high-pass filter or make a calibration in you micro-controller.
2017-08-30 01:06 AM
Merge two bytes. Divide by 4 since data is 12 bits. multiply by 0.195. i.e merge and multiply by 0.04875. Is it right sir?
2017-08-30 03:12 AM
It is not correct.
Since the data are 12 bits in 16 bits register, you have to shift right the data by 4 or divide by 16.
2017-09-12 07:28 AM
Sorry, my bad. The calculations seemed to be right. I mean, I was actually right shifting by 4. The problem got solved by using the filter. Thanks for the solution, Sir. The filter removed the offset. The noise has reduced and its negligible now!