KE0075 keyes MPU6050加速度模块(焊盘孔) 红色 环保

  传感器系列

KE0075 (1)

1. 概述

本模块是一款高性能三轴加速度+三轴陀螺仪的六轴传感器模块,采用MPU6050芯片作为核心,利用自带的数字运动处理器DMP,通过IIC接口,输出姿态解算后的数据。具有体积小,使用方便等特点。模块自带2个定位孔,方便你将模块固定在其他设备。

2. 规格参数

工作电压:3.3-5V(DC)

通信方式:标准IIC通信协议

芯片内置16bit AD转换器,16位数据输出

陀螺仪范围:±250 500 1000 2000°/s

加速度范围:±2±4±8±16g

陀螺仪运作电流:5mA

陀螺仪待命电流:5μA

加速器运作电流:350μA

引脚间距:2.54mm

接口:8PIN接口

重量:3.0g

3. 连接图

KE0075

4. 测试代码

// 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”

// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation

// is used in I2Cdev.h

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE

#include “Wire.h”

#endif

// 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;

//MPU6050 accelgyro(0x69); // <– use for AD0 high

int16_t ax, ay, az;

int16_t gx, gy, gz;

// uncomment “OUTPUT_READABLE_ACCELGYRO” if you want to see a tab-separated

// list of the accel X/Y/Z and then gyro X/Y/Z values in decimal. Easy to read,

// not so easy to parse, and slow(er) over UART.

#define OUTPUT_READABLE_ACCELGYRO

// uncomment “OUTPUT_BINARY_ACCELGYRO” to send all 6 axes of data as 16-bit

// binary, one right after the other. This is very fast (as fast as possible

// without compression or data loss), and easy to parse, but impossible to read

// for a human.

//#define OUTPUT_BINARY_ACCELGYRO

#define LED_PIN 13

bool blinkState = false;

void setup() {

// join I2C bus (I2Cdev library doesn’t do this automatically)

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE

Wire.begin();

#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE

Fastwire::setup(400, true);

#endif

// initialize serial communication

Serial.begin(9600);

// 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”);

// use the code below to change accel/gyro offset values

/*

Serial.println(“Updating internal sensor offsets…”);

// -76 -2359 1688 0 0 0

Serial.print(accelgyro.getXAccelOffset()); Serial.print(“\t”); // -76

Serial.print(accelgyro.getYAccelOffset()); Serial.print(“\t”); // -2359

Serial.print(accelgyro.getZAccelOffset()); Serial.print(“\t”); // 1688

Serial.print(accelgyro.getXGyroOffset()); Serial.print(“\t”); // 0

Serial.print(accelgyro.getYGyroOffset()); Serial.print(“\t”); // 0

Serial.print(accelgyro.getZGyroOffset()); Serial.print(“\t”); // 0

Serial.print(“\n”);

accelgyro.setXGyroOffset(220);

accelgyro.setYGyroOffset(76);

accelgyro.setZGyroOffset(-85);

Serial.print(accelgyro.getXAccelOffset()); Serial.print(“\t”); // -76

Serial.print(accelgyro.getYAccelOffset()); Serial.print(“\t”); // -2359

Serial.print(accelgyro.getZAccelOffset()); Serial.print(“\t”); // 1688

Serial.print(accelgyro.getXGyroOffset()); Serial.print(“\t”); // 0

Serial.print(accelgyro.getYGyroOffset()); Serial.print(“\t”); // 0

Serial.print(accelgyro.getZGyroOffset()); Serial.print(“\t”); // 0

Serial.print(“\n”);

*/

// 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);

// these methods (and a few others) are also available

//accelgyro.getAcceleration(&ax, &ay, &az);

//accelgyro.getRotation(&gx, &gy, &gz);

#ifdef OUTPUT_READABLE_ACCELGYRO

// 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);

#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

// blink LED to indicate activity

blinkState = !blinkState;

digitalWrite(LED_PIN, blinkState);

}

5. 测试结果

按照上图接好线,烧录好代码,上电后,通电后,我们可在软件串口监视器中看到相对应数值,如下图。

6. 相关库文件链接

http://url.cn/4AQSuRa

http://url.cn/4AQVFTF

http://url.cn/4AQSvr1