文章目录

  • 一、主要功能
  • 二、硬件资源
    • 1.硬件准备
    • 2.硬件连接
  • 三、软件设计
    • 1.软件结构
    • 2.主要代码
  • 四、实验现象
  • 联系作者

一、主要功能

系统运行后,LCD1602显示MPU6050检测的欧拉角数值,P表示俯仰角,R表示横滚角,Y表示航向角,T表示温度值。调节MPU6050横滚角可控制舵机旋转0-180度。


二、硬件资源

1.硬件准备

项目所需要的硬件资源如下:
1、51单片机开发板1个
2、SG90舵机模块1个
3、LCD1602液晶模块1个
4、USB线1条(用于供电和程序下载)
5、杜邦线若干
6、MPU6050模块1个

2.硬件连接

   MPU6050模块-->单片机IOVCC-->5VGND-->GNDSCL-->P21SDA-->P20SG90舵机模块-->单片机IOVCC-->5VGND-->GND数据-->P22LCD1602液晶-->单片机IORS->P26RW->P25E->P27DB0-DB7-->P00-P07

三、软件设计

1.软件结构

2.主要代码

#include "app_demo.h"
#include "time.h"
#include "lcd1602.h"
#include "stdio.h"
#include "uart.h"
#include "mpu6050.h"
#include "mahony.h"
#include "pwm.h"//控制管脚定义
sbit LED1=P2^3;//定义全局结构体变量
_sys_str sys_str;//舵机角度控制
//angle:0-180
void servo_set_angle(float angle)
{pwm_set_duty_cycle(angle / 180 * 20 + 5);
}xdata short gtemp=0;//温度
//陀螺仪数据处理显示
void mpu_data_pros_show(void)
{xdata u8 buf[8];//俯仰角if(Pitch<0){Pitch=-Pitch;lcd1602_show_num(2,0,'-',0);}elselcd1602_show_num(2,0,' ',0);    lcd1602_show_nums(3,0,Pitch,3,0);if(Roll<0){Roll=-Roll;lcd1602_show_num(12,0,'-',0);}elselcd1602_show_num(12,0,' ',0);lcd1602_show_nums(13,0,Roll,3,0); if(Yaw<0){Yaw=-Yaw;lcd1602_show_num(2,1,'-',0);}elselcd1602_show_num(2,1,' ',0);    lcd1602_show_nums(3,1,Yaw,3,0);lcd1602_show_nums(13,1,gtemp/100,2,0);
}//应用控制系统
void app_sys_control(void)
{xdata short aacx,aacy,aacz;        //加速度传感器原始数据xdata short gyrox,gyroy,gyroz;  //陀螺仪原始数据u8 i=0;u8 duty_value=0;lcd1602_init();//LCD1602初始化   UART_Init();MPU6050_Init();MPU6050_Mahony_Init(85);pwm_init(0XFF,0XA3,200,duty_value);//定时时间为0.1ms,PWM周期是200*0.1ms=20ms,初始占空比为0mslcd1602_show_string(0,0,"P:-180    R:-180");lcd1602_show_string(0,1,"Y:-180    T: 25C");while(1){gtemp=MPU6050_Get_Temperature();  //得到温度值MPU6050_Get_Accelerometer(&aacx,&aacy,&aacz);    //得到加速度传感器数据MPU6050_Get_Gyroscope(&gyrox,&gyroy,&gyroz);    //得到陀螺仪数据Imu_Update(gyrox, gyroy, gyroz, aacx, aacy, aacz);
//      printf("俯仰角=%f, 横滚角=%f, 航向角=%f\r\n",Pitch,Roll,Yaw);servo_set_angle(Roll);mpu_data_pros_show();        }
}

四、实验现象

B站演示视频:https://space.bilibili.com/444388619


联系作者

作者B站链接:https://space.bilibili.com/444388619
可提供手把手教学服务,资料获取请联系作者QQ:3443792007
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

【51单片机】MPU6050陀螺仪控制舵机设计相关推荐

  1. 基于51单片机的自动浇花系统设计/基于51单片机的智能抽奖系统控制设计/基于51单片机的数字时钟与日历显示控制设计 毕业设计

    1147基于51单片机的自动浇花系统设计 设计思路:通湿度传感器实时监测湿度,通过LCD显示出实时的湿度采集值,可以通过按键设定目标界限,当达到这个界限值时,浇花系统的电机装置运行. 电路包含:LCD ...

  2. 基于51单片机的公交车安全智能检测系统、基于51单片机的金属探测仪控制设计、基于单片机的智能电子密码锁系统设计、基于51单片机酒精浓度检测仪设计【资料转发分享】

    630基于51单片机的公交车安全智能检测系统-设计资料 本资料是基于单片机的公交车安全监测系统 具有如下功能: 1.监测环境的温度,超标报警.可以设置上下限 2.监测是否有火灾以及有毒气体,超标报警, ...

  3. 设计一:51单片机流水灯控制

    目录 一.设计内容 二.硬件电路分析 三.仿真原理图 四.程序设计 五.仿真结果 六.思考题 作者有话说 一.设计内容 本次设计使用4个按键,当KEY1按下时,P0口所接的发光二极管(D1~D8)以1 ...

  4. 基于51单片机的电子万年历的设计-源代码

    电子万年历的设计目录 电子万年历的设计 电子万年历的系统整体设计框图 所需要的元件 DS18B20模块 DS18B20的特点 DS18B20内部结构 DS18B20管脚排列 DS1302模块 SPI时 ...

  5. 基于51单片机的酒精浓度检测仪设计

    本设计仅供参考 基于51单片机的酒精浓度检测仪设计(proteus仿真+程序+原理图+报告) 原理图:Altium Designer 仿真:proteus 8.9 程序编译器:keil 4/keil ...

  6. 5-基于51单片机步进电机的控制研究(原理图工程+仿真工程+答辩论文+答辩PPT)

    5-基于51单片机步进电机的控制研究(原理图工程+仿真工程+答辩论文+答辩PPT) 文章目录 5-基于51单片机步进电机的控制研究(原理图工程+仿真工程+答辩论文+答辩PPT) 资料 设计说明书 摘要 ...

  7. 基于51单片机的智能家居的设计(一)

    基于51单片机的智能家居的设计初级版本 项目简介: 该项目可以通过单片机烧写软件发送指令并实现大厅灯跟卧室灯的亮灭.该项目分为四个等级: 1.在单片机烧写软件上面发送指令实现灯的亮灭: 2.用语音模块 ...

  8. 基于高速51单片机的模拟USB接口设计

    基于高速51单片机的模拟USB接口设计 作者:廖颂文 摘要:参照AVRUSB技术给出了51单片机通过模拟USB通信的实现方法.用VC编写了上位机软件,通过libusb驱动实现了PC与ST12LE560 ...

  9. 基于51单片机的电子秤proteus仿真设计

    本设计仅供学习参考 基于51单片机的电子秤proteus仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/ke ...

最新文章

  1. 经典的异或题:只出现一次的数字
  2. z = x++ - --y * b/a;
  3. C语言实现基数排序Radix sort算法之一(附完整源码)
  4. http/https监控获取响应时间(DNS解析时间,RRT时间,服务器处理时间等)
  5. php删除二位数组相同元素,删除去除二维数组中相同元素与数组重复值实例-PHP源码...
  6. Javascript高级程序设计第二版第七章匿名函数--笔记
  7. C#反射Assembly 详细说明
  8. 利用openssl创建私有CA的步骤和过程
  9. [CM311-1A]-Android 分区管理以及系统启动流程和目录解析
  10. 计算机与电气工程sci期刊,2019年电气工程领域的英文SCI期刊(影响因子+近年来期刊发表数量)...
  11. centos7内网穿透(frp、zerotier)
  12. win10下自动运行python程序脚本
  13. 成都市计算机会考考试题,成都市初中信息技术会考试题_第七套.docx
  14. IT开发工程师的五个等级,你现在几级?
  15. java搜索拉钩_java实现拉钩网上的FizzBuzzWhizz问题示例
  16. 统计建模与R软件-附R原程序
  17. 教师博客能不能改成学生博客_学生应该博客吗?
  18. codeforces 940E. Cashback(线性dp)
  19. Sensor Fusion
  20. 软件工程小组第十次会议记录

热门文章

  1. word文档上粘贴源代码
  2. thinkphp6 加载第三方类库_ThinkPHP vendor 方法导入第三方类库
  3. iis php cpu负荷过大,解决IIS占用CPU和内存大的问题
  4. 网络私有制行得通吗?
  5. java学习体会论文_关于学习java的心得体会
  6. 港科百创|北京决赛成功举办!“香港科大-杰瑞集团”2022【人工智能】百万奖金国际创业大赛决赛成功举办!...
  7. MediaPlayer的使用
  8. python猜密码游戏规则_Python实现的摇骰子猜大小功能小游戏示例
  9. 傅里叶级数FS,连续时间傅里叶变换CTFT,离散时间傅里叶变换DTFT,离散傅里叶变换DFT,推导与联系(二)
  10. 部署Nextcloud私有云