Arduino连接MPU6050陀螺仪

一、线路连接

Arduino MPU6050
VCC 3.3V/5V
GND GND
SCL A5
SDA A4
INT D2

二、库下载

https://pan.baidu.com/s/1nvt75tJ

下载后,将相关库文件放进Arduino的libraries文件夹中

三、示例代码

// I2C device class (I2Cdev) demonstration Arduino sketch for MPU6050 class
// 10/7/2011 by Jeff Rowberg <[email protected]>
// Updates should (hopefully) always be available at https://github.com/jrowberg/i2cdevlib
//
// Changelog:
//     2011-10-07 - initial release

/* ============================================
I2Cdev device library code is placed under the MIT license
Copyright (c) 2011 Jeff Rowberg

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
===============================================
*/

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#include "Wire.h"

// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"
#include "MPU6050.h"

// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;

int16_t ax, ay, az;
int16_t gx, gy, gz;

#define LED_PIN 13
bool blinkState = false;

void setup() {
    // join I2C bus (I2Cdev library doesn‘t do this automatically)
    Wire.begin();

    // initialize serial communication
    // (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
    // it‘s really up to you depending on your project)
    Serial.begin(38400);

    // initialize device
    Serial.println("Initializing I2C devices...");
    accelgyro.initialize();

    // verify connection
    Serial.println("Testing device connections...");
    Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

    // configure Arduino LED for
    pinMode(LED_PIN, OUTPUT);
}

void loop() {
    // read raw accel/gyro measurements from device
//    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
    int16_t temp = accelgyro.getTemperature();
    int16_t tempx = 21 + ( temp / 333.87 );

    // these methods (and a few others) are also available
    //accelgyro.getAcceleration(&ax, &ay, &az);
    //accelgyro.getRotation(&gx, &gy, &gz);

    // display tab-separated accel/gyro x/y/z values
    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);
    Serial.println(tempx);
    Serial.println("================================");

    // blink LED to indicate activity
    blinkState = !blinkState;
    digitalWrite(LED_PIN, blinkState);
}

四、其他

1.其他方法可以在库文件的MPU6050.cpp中查看

2.温度传感器用于零漂校准,用于测温度不准

原文地址:https://www.cnblogs.com/punkrocker/p/11111708.html

时间: 2024-10-11 07:17:13

Arduino连接MPU6050陀螺仪的相关文章

Arduino uno + mpu6050 陀螺仪 运用卡尔曼滤波姿态解算实验

MPU6050六轴陀螺仪 作用于四轴无人机,平衡车,机器人等等的电子实作当中,用于姿态判断,掌握了可以发挥自己的想象完成更多更有趣的作品. 本例程输出XYZ的角度,正负90度. 运用卡尔曼滤波算法解算姿态,感觉算是比较稳定,但好像有点偏移.大家好好学习参考,再改进吧. 输出效果 首先看看本例程XYZ轴的输出效果图: (时间曲线的体现是:静止姿态→摆动→恢复原静止姿态→拍动桌子→静止姿态) Bom表 Arduino Uno               *1 mpu6050 陀螺仪模块 *1 跳线

Arduino 与 MPU6050 姿态解算+ PROCESSING

买的MPU6050自带姿态解算大大减轻了上层处理器所做的工作. 通过熟悉了一下processing之后做了一个小例子更是感觉这个传感器的奇妙. Arduino部分 主要是读取MPU6050数据并将采集到的欧拉角通过串口打印到上位机,采集数据很简单,MPU6050接到arduino mega2560的serial1上便可接收数据,然后通过serial传输到电脑上.MPU6050自带了卡尔曼滤波,所以上层更是直接使用了数据,观测得误差确实很少,很实用的传感器. 注: MPU6050使用的是串口模式,

Arduino连接SHT10温湿度传感器--返回值不正常解决办法

如题目,arduino中连接温湿度传感器,用的是一个github开源项目,地址:点击打开,其实这个就是一个封装好的库,下载后把解压的文件夹复制到Arduino目录下的librarys文件夹内,重启Arduino,到此就算是到库成功了.下面看电路连接图: 注意DATA和SCK两个脚对于Arduino上的数字引脚,在写程序的时候要用到,如图所示:将 SHT15 的 Data 脚接到 pin11, SCK 接到 pin10 电路图片: 导入库的路径: 其实库里面提供了一个实例代码,你可以直接拿过来使用

Raspberry Pi通过蓝牙与Arduino连接

** 刚刚开始接触如有错误请留言指正,多谢 ** 设备 Raspberry Pi第三代B+版本 Arduino Pro Mini(5V,16MHz)w/ ATmega328 + 写入设备(或使用其他Arduino版本) 蓝牙HC-06 发光二极管1个 10千欧电阻1个 杜邦线若干 安装过程中所需要的包和工具 在 Python 环境下,使用“import bluetooth”如果报出错误信息“ImportError: No module named bluetooth”则说明没有安装相应的包,执行

CC3000 Arduino 连接Yeelink中文注释 示例

代码如下" /*************************************************** *这是一个例子的dfrobot维多-无线集成物联网建兴传感器和控制节点 *产品页面及更多信息:http://www.dfrobot.com.cn/goods-997.html *特别设计的dfrobot维多产品的工作: * *图书馆叉从Adafruit * *劳伦写的 * BSD许可证,所有以上文字必须包含在任何重 * ******************************

Arduino MPU6050

http://playground.arduino.cc/Main/MPU-6050 Introduction The InvenSense MPU-6050 sensor contains a MEMS accelerometer and a MEMS gyro in a single chip. It is very accurate, as it contains 16-bits analog to digital conversion hardware for each channel.

Arduino教程:MPU6050的数据获取、分析与处理

Arduino教程:MPU6050的数据获取.分析与处理 摘要 MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度.由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行器上驰骋蓝天. 随着Arduino开发板的普及,许多朋友希望能够自己制作基于MPU6050的控制系统,但由于缺乏专业知识而难以上手.此外,MPU6050的数据是有较大噪音的,若不进行滤波会对整个控制系统的精准确带来严重影响. MPU60

arduino+16路舵机驱动板连接测试

用Arduino类库驱动舵机并不是一件难事,如果需要驱动很多电机,就需要要占用更多的引脚,也会影响到Arduino的处理能力.专门的舵机驱动板很好的解决了这个问题. 此舵机驱动板使用PCA9685芯片,是16通道12bit PWM舵机驱动,用2个引脚通过I2C就可以驱动16个舵机.不仅如此,你还可以通过级联的方式最多级联62个驱动板,总共可以驱动992个舵机! 大多数的舵机设计电压都是在5~6V,尤其在多个舵机同时运行时,跟需要有大功率的电源供电.如果直接使用Arduino 5V引脚直接为舵机供

MPU6050首例整合性6轴的姿态模块(转)

源:MPU6050首例整合性6轴的姿态模块 Mpu6050为全球首例整合3轴陀螺仪.3轴加速器.含9轴融合演:MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间.MPU-6000整合了3轴陀螺仪.3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器.磁力传感器.或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完