【雕爷学编程】Arduino动手做(108)---GY-521三轴传感器模块之动态显示六轴曲线

在这里插入图片描述

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来—小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百零八:MPU-6050模块 三轴加速度 电子陀螺仪6DOF GY-521传感器(三轴陀螺仪 + 三轴加速度)

在这里插入图片描述
模块电原理图

在这里插入图片描述

实验接线示意图

在这里插入图片描述
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百零八:MPU-6050模块 三轴加速度 电子陀螺仪6DOF GY-521传感器(三轴陀螺仪 + 三轴加速度)

项目之二:显示六轴曲线

实验接线:

Arduino------MPU 6050

5V-------------VCC

GND-----------GND

A4-----------SDA IIC 数据线

A5-----------SCL IIC 时钟线

D2-----------INT 中断脚

/*

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)

实验一百零八:MPU-6050模块 三轴加速度 电子陀螺仪6DOF GY-521传感器(三轴陀螺仪 + 三轴加速度)

项目之二:显示六轴曲线

实验接线:

Arduino------MPU 6050

5V-------------VCC

GND-----------GND

A4-----------SDA IIC 数据线

A5-----------SCL  IIC 时钟线

D2-----------INT 中断脚

*/



#include "I2Cdev.h"

#include "MPU6050.h"

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE

  #include "Wire.h"

#endif

MPU6050 accelgyro;

int16_t ax, ay, az;

int16_t gx, gy, gz;

#define OUTPUT_READABLE_ACCELGYRO

#define LED_PIN 13

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

  delay(50);

}

实验串口返回情况

在这里插入图片描述
打开Arduino IDE——工具——串口绘图器,查看实验波形
实验串口绘图器返回情况

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实验场景图

在这里插入图片描述
实验开源图形编程(Mind+、编玩边学)

在这里插入图片描述
实验串口返回情况

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41659040/article/details/132487525
今日推荐