|
楼主 |
发表于 2019-9-9 17:07:51
|
显示全部楼层
- /*
- 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
- 实验一百一十二: 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);
- }
复制代码 |
|