Files
2024-07-20 22:09:06 +08:00

47 lines
1.3 KiB
C++

#ifndef MPU6050_ESP8266_H
#define MPU6050_ESP8266_H
#include "Arduino.h"
#include <Wire.h>
// MPU6050 配置寄存器地址
#define MPU6050_REGISTER_SMPLRT_DIV 0x19
#define MPU6050_REGISTER_USER_CTRL 0x6A
#define MPU6050_REGISTER_PWR_MGMT_1 0x6B
#define MPU6050_REGISTER_PWR_MGMT_2 0x6C
#define MPU6050_REGISTER_CONFIG 0x1A
#define MPU6050_REGISTER_GYRO_CONFIG 0x1B
#define MPU6050_REGISTER_ACCEL_CONFIG 0x1C
#define MPU6050_REGISTER_FIFO_EN 0x23
#define MPU6050_REGISTER_INT_ENABLE 0x38
#define MPU6050_REGISTER_ACCEL_XOUT_H 0x3B
#define MPU6050_REGISTER_SIGNAL_PATH_RESET 0x68
// 数据表中提供的灵敏度比例系数分别为满刻度设置
#define AccelScaleFactor 16384
#define GyroScaleFactor 131
#define MPU6050SlaveAddress 0x68
class MPU6050_ESP8266{
public:
MPU6050_ESP8266();
float getTemp(){ return temp; };
float getAccX(){ return accX; };
float getAccY(){ return accY; };
float getAccZ(){ return accZ; };
float getAccAngleX(){ return angleAccX; };
float getAccAngleY(){ return angleAccY; };
float getAngleZ(){ return angleZ; };
void begin();
void I2C_Write(uint8_t regAddress, uint8_t data);
void update();
private:
float temp, accX, accY, accZ, angleAccX, angleAccY, angleZ;
};
#endif