2017-07-18 08:24 PM
Hi, i am working with LSM6DS3 sensor, this is the first time i work with type of sensor. i am trying to read out gyro z data, but it very noise when sensor is immobile.Here is my log:
-120
-93-127-69-79-41-85-97-72-57-85-108-59-42-58-56-66-91-73-81-64-107-60-48-77-96-80-68-57-75-71-56-64-68and here is my config:
LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL1_XL, 0x61);
LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL2_G, 0x6c); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL3_C, 0x44); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL4_C, 0x02); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL5_C, 0x00); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL6_C, 0x00); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL7_G, 0x40); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL8_XL, 0x00); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL9_XL, 0x38); LSM6DS3_WriteReg(LSM6DS3_REGISTER_CTRL10_C, 0x38);Someone can give me advice? Sory for my bad eglish.
#lsm6ds32017-07-19 01:22 AM
I try to caculate angle but it was drifted. here is my code
temp = LSM6DS3_ReadGyroZ();
if (calibration < 200) { if (temp < GyroLowZ) GyroLowZ = temp; if (temp > GyroHighZ) GyroHighZ = temp; calibration++;} else {
if (temp > GyroHighZ || temp < GyroLowZ) { AngleZc = (float) (temp * k * dt); } else { AngleZc = 0; } AngleZ += AngleZc; }with k=0.07(scale= 2000dps), dt=0.0025.I had used an
calibration funtion with 200 times when start but it isnt effective.
2017-07-21 12:07 AM
someone help me please!!!!!
2018-09-03 07:05 AM
did u found a solution for this issue? I have same problem.