博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MPU-6050模块三轴加速度+三轴陀螺仪
阅读量:3924 次
发布时间:2019-05-23

本文共 2247 字,大约阅读时间需要 7 分钟。

MPU-6050模块三轴加速度+三轴陀螺仪

简介

在这里插入图片描述

MPU-6050集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP,可用IIC接口连接一个第三方的数字传感器。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为250,500,1000,2000/秒(dps),加速度计可测范围为2,4,8,16g。

模块引脚说明名称

名称 描述
VDD DC+5v
GND GND
SCL IIC串行时钟线/SPI串行时钟端口
SDA IIC串行数据线/SPI串行数据输入
XDA 连接其他IIC设备的主机数据口
XCL 给IIC设备提供主时钟
ADO IIC器件地址选择位/SPI串行数据输出
INT 中断引脚

接线

在这里插入图片描述

5v——VCC
GND——GND
SCL——SCL
SDA——SDA

Arduino例程代码

include "I2Cdev.h"include "MPU6050.h"if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE    #include "Wire.h"endifMPU6050 accelgyro;int16_t ax, ay, az;int16_t gx, gy, gz;define OUTPUT_READABLE_ACCELGYROdefine LED_PIN 13bool blinkState = false;void setup() {
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif Serial.begin(38400); Serial.println("Initializing I2C devices..."); accelgyro.initialize(); Serial.println("Testing device connections..."); Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); pinMode(LED_PIN, OUTPUT);}void loop() {
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); ifdef OUTPUT_READABLE_ACCELGYRO Serial.print("a/g:\t"); Serial.print(ax); Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az); Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy); Serial.print("\t"); Serial.println(gz); endif ifdef OUTPUT_BINARY_ACCELGYRO Serial.write((uint8_t)(ax >> 8)); Serial.write((uint8_t)(ax & 0xFF)); Serial.write((uint8_t)(ay >> 8)); Serial.write((uint8_t)(ay & 0xFF)); Serial.write((uint8_t)(az >> 8)); Serial.write((uint8_t)(az & 0xFF)); Serial.write((uint8_t)(gx >> 8)); Serial.write((uint8_t)(gx & 0xFF)); Serial.write((uint8_t)(gy >> 8)); Serial.write((uint8_t)(gy & 0xFF)); Serial.write((uint8_t)(gz >> 8)); Serial.write((uint8_t)(gz & 0xFF)); endif blinkState = !blinkState; digitalWrite(LED_PIN, blinkState);

打开串口检测器,把波特率设置为38400

在这里插入图片描述

总结

像MPU-6050这种带有SCL,SDA串行IIC接口的模块,可以连接Arduino的IIC接口通过例程进行简单使用,也方便对模块进行测试。

转载地址:http://srkgn.baihongyu.com/

你可能感兴趣的文章
考虑用Task.WhenAll
查看>>
关于面试,避开这几点,成功几率更大~~~
查看>>
堵俊平:开放治理是开源社区的终极之路 | DEV. Together 2021 中国开发者生态峰会...
查看>>
Linux实操--实用指令Day3
查看>>
Linux实操--实用指令Day4
查看>>
Linux实操--实用指令Day3
查看>>
spring+springboot认识
查看>>
Leetcode 136. 只出现一次的数字
查看>>
Leetcode 11. 盛最多水的容器
查看>>
Leetcode 121. 买卖股票的最佳时机
查看>>
Leetcode 123. 买卖股票的最佳时机 III
查看>>
Leetcode 24. 两两交换链表中的节点
查看>>
Leetcode 100. 相同的树
查看>>
Leetcode 101. 对称二叉树
查看>>
Leetcode 108. 将有序数组转换为二叉搜索树
查看>>
Leetcode 303. 区域和检索 - 数组不可变
查看>>
Leetcode 110. 平衡二叉树
查看>>
Leetcode 111. 二叉树的最小深度
查看>>
Leetcode 226. 翻转二叉树
查看>>
Leetcode 617. 合并二叉树
查看>>