找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 2409|回复: 3
打印 上一主题 下一主题
收起左侧

stm32单片机利用mpu6050陀螺仪控制舵机程序

[复制链接]
跳转到指定楼层
楼主


#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "OLED.h"
#include "MPU6050.h"
#include "Servo.h"

uint8_t ID;                                //定义用于存放ID号的变量
int16_t AX, AY, AZ, GX, GY, GZ;            //定义用于存放各个数据的变量

float abs_value(int16_t num) {
        if(num>2000){
            num=2000;
        }
        if(num<-2000){
            num=-2000;
        }
    if (num < 0) {  
        return -num;  
    } else {  
        return num;  
    }  
}

int main(void)
{
    /*模块初始化*/
    OLED_Init();        //OLED初始化
    MPU6050_Init();        //MPU6050初始化
    Servo_Init();        //舵机初始化
   
    /*显示ID号*/
    OLED_ShowString(1, 1, "ID:");        //显示静态字符串
    ID = MPU6050_GetID();                //获取MPU6050的ID号
    OLED_ShowHexNum(1, 4, ID, 2);        //OLED显示ID号
   
    while (1)
    {
        MPU6050_GetData(&AX, &AY, &AZ, &GX, &GY, &GZ);        //获取MPU6050的数据
        OLED_ShowSignedNum(2, 1, AX, 5);                    //OLED显示数据
        OLED_ShowSignedNum(3, 1, AY, 5);
        OLED_ShowSignedNum(4, 1, AZ, 5);
        OLED_ShowSignedNum(2, 8, GX, 5);
        OLED_ShowSignedNum(3, 8, GY, 5);
        OLED_ShowSignedNum(4, 8, GZ, 5);
        AY = abs_value(AY*180/2000);
        Servo_SetAngle(AY);            //设置舵机的角度为角度变量
        OLED_ShowNum(1, 8, AY, 5);    //OLED显示角度变量
        //Delay_ms(500);
    }
}


原理图: 无
仿真: 无
代码: stm32利用mpu6050陀螺仪控制舵机.7z (187.21 KB, 下载次数: 69)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

举报

沙发
ID:1114752 发表于 2024-4-6 20:08 | 只看该作者
抱歉,楼主,我想问问您的代码是硬件读取还是软件读取,我是新手
回复

举报

板凳
ID:1071040 发表于 2024-4-9 11:31 | 只看该作者
YSY521 发表于 2024-4-6 20:08
抱歉,楼主,我想问问您的代码是硬件读取还是软件读取,我是新手

我也忘记了,mpu6050的代码来自于B站“江协科技”的STM32教程的第十节课,软件和硬件读取的方式都有
回复

举报

地板
ID:1115852 发表于 2024-4-9 16:38 | 只看该作者
利用mpu6050读取数据,显示在OLDE显示屏里面,通过返回值(轴的返回值数据)来进行参数配置公式的套用
控制舵机转动
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表