当前位置:   article > 正文

6轴速度计/陀螺仪MPU6050模块 C51单片机 I2C程序C代码

c51驱动6050


资料下载

https://pan.baidu.com/s/15QGGG


产品参数
名称:MPU-6050模块(三轴陀螺仪+三轴加速度)
使用芯片:MPU-6050
供电电源:3-5V(内部低压差稳压)
通信方式:标准IIC通信协议
芯片内置16bit AD转换器,16位数据输出
陀螺仪范围::±250 500 1000 2000  °/s
加速度范围:±2±4±8±16g   
采用沉金PCB,机器焊接工艺保证质量
引脚间距2.54mm

MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术
InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。
MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

应用
运动感测游戏
现实增强
电子稳像 (EIS: Electronic Image Stabilization)
光学稳像(OIS: Optical Image Stabilization)
行人导航器
“零触控”手势用户接口
姿势快捷方式
认证

 

特征
以数字输出6轴或9轴的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据。
具有131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、±1000与±2000°/sec 的3轴角速度感测器(陀螺仪)。
可程式控制,且程式控制范围为±2g、±4g、±8g和±16g的3轴加速器。
移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。
数字运动处理(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。
运动处理数据库支持Android、Linux与Windows。
内建之运作时间偏差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。
以数位输出的温度传感器。
以数位输入的同步引脚(Sync pin)支援视频电子影相稳定技术与GPS。
可程式控制的中断(interrupt)支援姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。
VDD供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO为1.8V± 5%。
陀螺仪运作电流:5mA,陀螺仪待命电流:5μA;加速器运作电流:350μA,加速器省电模式电流: 20μA@10Hz。
高达400kHz快速模式的I2C,或最高至20MHz的SPI串行主机接口(serial host interface)。

内建频率产生器在所有温度范围(full temperature range)仅有±1%频率变化。
使用者亲自测试。
10,000 g 碰撞容忍度。

为可携式产品量身订作的最小最薄包装 (4x4x0.9mm QFN)。
符合RoHS及环境标准。

【串口】

  1. //****************************************
  2. // Update to MPU6050 by shinetop
  3. // MCU: STC89C52
  4. // 功能: 显示加速度计和陀螺仪的10位原始数据
  5. //****************************************
  6. // GY-52 MPU3050 IIC测试程序
  7. // 使用单片机STC89C51
  8. // 晶振:11.0592M
  9. // 显示:LCD1602
  10. // 编译环境 Keil uVision2
  11. //****************************************
  12. #include <REG52.H>
  13. #include <math.h> //Keil library
  14. #include <stdio.h> //Keil library
  15. #include <INTRINS.H>
  16. typedef unsigned char uchar;
  17. typedef unsigned short ushort;
  18. typedef unsigned int uint;
  19. //****************************************
  20. // 定义51单片机端口
  21. //****************************************
  22. #define DataPort P0 //LCD1602数据端口
  23. sbit SCL=P1^0; //IIC时钟引脚定义
  24. sbit SDA=P1^1; //IIC数据引脚定义
  25. sbit LCM_RS=P2^0; //LCD1602命令端口
  26. sbit LCM_RW=P2^1; //LCD1602命令端口
  27. sbit LCM_EN=P2^2; //LCD1602命令端口
  28. //****************************************
  29. // 定义MPU6050内部地址
  30. //****************************************
  31. #define SMPLRT_DIV 0x19 //陀螺仪采样率,典型值:0x07(125Hz)
  32. #define CONFIG 0x1A //低通滤波频率,典型值:0x06(5Hz)
  33. #define GYRO_CONFIG 0x1B //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
  34. #define ACCEL_CONFIG 0x1C //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
  35. #define ACCEL_XOUT_H 0x3B
  36. #define ACCEL_XOUT_L 0x3C
  37. #define ACCEL_YOUT_H 0x3D
  38. #define ACCEL_YOUT_L 0x3E
  39. #define ACCEL_ZOUT_H 0x3F
  40. #define ACCEL_ZOUT_L 0x40
  41. #define TEMP_OUT_H 0x41
  42. #define TEMP_OUT_L 0x42
  43. #define GYRO_XOUT_H 0x43
  44. #define GYRO_XOUT_L 0x44
  45. #define GYRO_YOUT_H 0x45
  46. #define GYRO_YOUT_L 0x46
  47. #define GYRO_ZOUT_H 0x47
  48. #define GYRO_ZOUT_L 0x48
  49. #define PWR_MGMT_1 0x6B //电源管理,典型值:0x00(正常启用)
  50. #define WHO_AM_I 0x75 //IIC地址寄存器(默认数值0x68,只读)
  51. #define SlaveAddress 0xD0 //IIC写入时的地址字节数据,+1为读取
  52. //****************************************
  53. //定义类型及变量
  54. //****************************************
  55. uchar dis[6]; //显示数字(-511至512)的字符数组
  56. int dis_data; //变量
  57. //int Temperature,Temp_h,Temp_l; //温度及高低位数据
  58. //****************************************
  59. //函数声明
  60. //****************************************
  61. void delay(unsigned int k); //延时
  62. void lcd_printf(uchar *s,int temp_data);
  63. //MPU6050操作函数
  64. void InitMPU6050();
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/568299
推荐阅读
  

闽ICP备14008679号