发新帖我要提问
12
返回列表
打印
[其他]

STM32 姿态传感器mpu6050的使用

[复制链接]
楼主: 略略u
手机看帖
扫描二维码
随时随地手机跟帖
21
略略u|  楼主 | 2022-8-29 23:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
3、 温度换算

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

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

其中, Temperature 为计算得到的温度值,单位为℃, regval 为从 0X41 和 0X42 读到的温度传感器值

使用特权

评论回复
22
略略u|  楼主 | 2022-8-29 23:42 | 只看该作者
void MPU6050_ReturnTemp(float *Temperature)
{
        short temp3;
        u8 buf[2];
       
        MPU6050_ReadData(MPU6050_RA_TEMP_OUT_H,buf,2);
    temp3= (buf[0] << 8) | buf[1];       
        *Temperature=((double) temp3/340.0)+36.53;
}

使用特权

评论回复
23
略略u|  楼主 | 2022-8-29 23:42 | 只看该作者
4、主程序
int main(void)
{
        short Accel[3];
        short Gyro[3];
        float Temp;
        SysTick_Init();
        SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;
        USART_Config();
        i2c_GPIO_Config();
        MPU6050_Init();

        //检测MPU6050
        if (MPU6050ReadID() == 1)
        {       
                while(1)
                {
                        if(Task_Delay[0]==TASK_ENABLE)
                        {
                                Task_Delay[0]=1000;
                        }       
                        if(Task_Delay[1]==0)
                        {
                                MPU6050ReadAcc(Accel);                       
                                printf("\加速度 %8d%8d%8d    ",Accel[0],Accel[1],Accel[2]);
                                MPU6050ReadGyro(Gyro);
                                printf("陀螺仪 %8d%8d%8d    ",Gyro[0],Gyro[1],Gyro[2]);                               
                                MPU6050_ReturnTemp(&Temp);
                                printf("温度 %8.2f",Temp);                               
                                Task_Delay[1]=500;//更新数据的频率
                        }
                }   
        }
}

使用特权

评论回复
24
略略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

使用特权

评论回复
25
laocuo1142| | 2022-8-30 09:11 | 只看该作者
你是不是发错版块了,老弟?

使用特权

评论回复
26
tpgf| | 2022-9-8 13:29 | 只看该作者
输出量是数字量还是模拟量啊

使用特权

评论回复
27
keaibukelian| | 2022-9-8 13:43 | 只看该作者
加速度的精度感觉咋样

使用特权

评论回复
28
labasi| | 2022-9-8 14:54 | 只看该作者
姿态角读取之后还需要自己进行运算处理

使用特权

评论回复
29
paotangsan| | 2022-9-8 15:02 | 只看该作者
姿态角之间采用什么坐标系计算比较方便额

使用特权

评论回复
30
renzheshengui| | 2022-9-8 15:15 | 只看该作者
有什么手段校正这个姿态角吗

使用特权

评论回复
31
wakayi| | 2022-9-8 15:55 | 只看该作者
一般来说如何校正陀螺仪的数据呢

使用特权

评论回复
32
Henryko| | 2022-9-14 21:46 | 只看该作者

姿态角读取之后还需要自己进行运算处理吗?

使用特权

评论回复
33
星辰大海不退缩| | 2022-10-15 14:01 | 只看该作者
Henryko 发表于 2022-9-14 21:46
姿态角读取之后还需要自己进行运算处理吗?

读取位姿角度不用处理直接从硬件读取就好,读取之后肯定就要看你要如何使用数据了,要不加这个硬件也没用呀

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则