一、加速度的换算:
例如:加速度计的量程设置为:±16g ,则:
Data=数据高八位<<8|数据低八位;
A=9.8*Data/2048 (m/s^2)
二、陀螺仪角速度的换算:
例如:陀螺仪的量程设置为:±2000,则:
Data=数据高八位<<8|数据低八位;
Pi=3.1415926;
Ω=(pi/180)*Data/16.4 (rad/s)
三、温度换算:
Data=数据高八位<<8|数据低八位;
C = (Data)/340 + 36.53 (℃)
四、磁力计(AK8963)转换:
灵敏度:16位AD (0.15uT/LSB);
Data=数据高八位<<8|数据低八位;
ASA:Fuse ROM中读取的值。
M校正后=Data*((ASA - 128) / 256 + 1) * 0.15;
五、MS5611气压计气压值与温度值换算:
D1:24位AD值(压力)
D2:24位AD值(温度)
程序:
float dT = D2 - C5 * pow(2, 8);
TEMP = (2000 + ((dT * C6) / pow(2, 23)));
float OFF = C2 * pow(2, 16) + (C4 * dT) / pow(2, 7);
SENS = C1 * pow(2, 15) + (C3 * dT) / pow(2, 8);
float T2, OFF2, SENS2;
if (TEMP >= 2000)
{
T2 = 0;
OFF2 = 0;
SENS2 = 0;
}
if (TEMP < 2000)
{
T2 = dT * dT / pow(2, 31);
OFF2 = 5 * pow(TEMP - 2000, 2) / 2;
SENS2 = OFF2 / 2;
}
if (TEMP < -1500)
{
OFF2 = OFF2 + 7 * pow(TEMP + 1500, 2);
SENS2 = SENS2 + 11 * pow(TEMP + 1500, 2) / 2;
}
TEMP = TEMP - T2;
OFF = OFF - OFF2;
TEMP = TEMP / 100;
例如:加速度计的量程设置为:±16g ,则:
Data=数据高八位<<8|数据低八位;
A=9.8*Data/2048 (m/s^2)
二、陀螺仪角速度的换算:
例如:陀螺仪的量程设置为:±2000,则:
Data=数据高八位<<8|数据低八位;
Pi=3.1415926;
Ω=(pi/180)*Data/16.4 (rad/s)
三、温度换算:
Data=数据高八位<<8|数据低八位;
C = (Data)/340 + 36.53 (℃)
四、磁力计(AK8963)转换:
灵敏度:16位AD (0.15uT/LSB);
Data=数据高八位<<8|数据低八位;
ASA:Fuse ROM中读取的值。
M校正后=Data*((ASA - 128) / 256 + 1) * 0.15;
五、MS5611气压计气压值与温度值换算:
D1:24位AD值(压力)
D2:24位AD值(温度)
流程图
程序:
float dT = D2 - C5 * pow(2, 8);
TEMP = (2000 + ((dT * C6) / pow(2, 23)));
float OFF = C2 * pow(2, 16) + (C4 * dT) / pow(2, 7);
SENS = C1 * pow(2, 15) + (C3 * dT) / pow(2, 8);
float T2, OFF2, SENS2;
if (TEMP >= 2000)
{
T2 = 0;
OFF2 = 0;
SENS2 = 0;
}
if (TEMP < 2000)
{
T2 = dT * dT / pow(2, 31);
OFF2 = 5 * pow(TEMP - 2000, 2) / 2;
SENS2 = OFF2 / 2;
}
if (TEMP < -1500)
{
OFF2 = OFF2 + 7 * pow(TEMP + 1500, 2);
SENS2 = SENS2 + 11 * pow(TEMP + 1500, 2) / 2;
}
TEMP = TEMP - T2;
OFF = OFF - OFF2;
SENS = SENS - SENS2;
PRES = ((D1 * SENS) / pow(2, 21) - OFF) / pow(2, 15) / 100;TEMP = TEMP / 100;