[其他] STM32 姿态传感器mpu6050的使用

[复制链接]
1702|34
 楼主| 略略u 发表于 2022-8-29 23:41 | 显示全部楼层
3、 温度换算

温度传感器的值,可以通过读取 0X41(高 8 位)和 0X42(低 8 位)寄存器得到,

温度换算公式为:Temperature = 36.53 + regval/340

其中, Temperature 为计算得到的温度值,单位为℃, regval 为从 0X41 和 0X42 读到的温度传感器值
 楼主| 略略u 发表于 2022-8-29 23:42 | 显示全部楼层
  1. void MPU6050_ReturnTemp(float *Temperature)
  2. {
  3.         short temp3;
  4.         u8 buf[2];
  5.        
  6.         MPU6050_ReadData(MPU6050_RA_TEMP_OUT_H,buf,2);
  7.     temp3= (buf[0] << 8) | buf[1];       
  8.         *Temperature=((double) temp3/340.0)+36.53;
  9. }
 楼主| 略略u 发表于 2022-8-29 23:42 | 显示全部楼层
4、主程序
  1. int main(void)
  2. {
  3.         short Accel[3];
  4.         short Gyro[3];
  5.         float Temp;
  6.         SysTick_Init();
  7.         SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
  8.         USART_Config();
  9.         i2c_GPIO_Config();
  10.         MPU6050_Init();

  11.         //检测MPU6050
  12.         if (MPU6050ReadID() == 1)
  13.         {       
  14.                 while(1)
  15.                 {
  16.                         if(Task_Delay[0]==TASK_ENABLE)
  17.                         {
  18.                                 Task_Delay[0]=1000;
  19.                         }       
  20.                         if(Task_Delay[1]==0)
  21.                         {
  22.                                 MPU6050ReadAcc(Accel);                       
  23.                                 printf("\加速度 %8d%8d%8d    ",Accel[0],Accel[1],Accel[2]);
  24.                                 MPU6050ReadGyro(Gyro);
  25.                                 printf("陀螺仪 %8d%8d%8d    ",Gyro[0],Gyro[1],Gyro[2]);                               
  26.                                 MPU6050_ReturnTemp(&Temp);
  27.                                 printf("温度 %8.2f",Temp);                               
  28.                                 Task_Delay[1]=500;//更新数据的频率
  29.                         }
  30.                 }   
  31.         }
  32. }
 楼主| 略略u 发表于 2022-8-29 23:45 | 显示全部楼层
mpu6050输出的值
加速度: 2634 -2146 16238 陀螺仪: -63 -29 -33 温度: 21.51
加速度: 2680 -2312 16044 陀螺仪: -53 -18 -36 温度: 21.53
加速度: 2744 -2320 16196 陀螺仪: -48 -16 -36 温度: 21.66
加速度: -1 -1 -1 陀螺仪: -1 -1 -1 温度: 36.53
加速度: -1 -1 -1 陀螺仪: -1 -1 -1 温度: 36.53
加速度: -9586 3804 12182 陀螺仪: -456 -594 -72 温度: 22.14
加速度: -2452 -1740 15716 陀螺仪: -232 -436 -169 温度: 22.17
加速度: -986 -1736 16178 陀螺仪: -64 -184 -56 温度: 22.20
加速度: -194 -1790 16366 陀螺仪: -46 -9 -11 温度: 22.24
laocuo1142 发表于 2022-8-30 09:11 | 显示全部楼层
你是不是发错版块了,老弟?
tpgf 发表于 2022-9-8 13:29 | 显示全部楼层
输出量是数字量还是模拟量啊
keaibukelian 发表于 2022-9-8 13:43 | 显示全部楼层
加速度的精度感觉咋样
labasi 发表于 2022-9-8 14:54 | 显示全部楼层
姿态角读取之后还需要自己进行运算处理
paotangsan 发表于 2022-9-8 15:02 | 显示全部楼层
姿态角之间采用什么坐标系计算比较方便额
renzheshengui 发表于 2022-9-8 15:15 | 显示全部楼层
有什么手段校正这个姿态角吗
wakayi 发表于 2022-9-8 15:55 | 显示全部楼层
一般来说如何校正陀螺仪的数据呢
Henryko 发表于 2022-9-14 21:46 | 显示全部楼层

姿态角读取之后还需要自己进行运算处理吗?
星辰大海不退缩 发表于 2022-10-15 14:01 | 显示全部楼层
Henryko 发表于 2022-9-14 21:46
姿态角读取之后还需要自己进行运算处理吗?

读取位姿角度不用处理直接从硬件读取就好,读取之后肯定就要看你要如何使用数据了,要不加这个硬件也没用呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部