i2cdevlib只支持arduino nano等系列芯片,以及esp8266,但不支持esp32
1、只获取原始数据的话:
#include<>
#define SDA 4
#define SCL 15
const int MPU_addr=0x68; // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup()
{
(SDA, SCL);
(MPU_addr);
(0x6B); // PWR_MGMT_1 register
(0); // set to zero (wakes up the MPU-6050)
(true);
(9600);
}
void loop()
{
(MPU_addr);
(0x3B); // starting with register 0x3B (ACCEL_XOUT_H)
(false);
(MPU_addr,14,true); // request a total of 14 registers
AcX=()<<8|(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
AcY=()<<8|(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
AcZ=()<<8|(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
Tmp=()<<8|(); // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)
GyX=()<<8|(); // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
GyY=()<<8|(); // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
GyZ=()<<8|(); // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)
("AcX = "); (AcX);
(" | AcY = "); (AcY);
(" | AcZ = "); (AcZ);
(" | Tmp = "); (Tmp/340.00+36.53); //equation for temperature in degrees C from datasheet
(" | GyX = "); (GyX);
(" | GyY = "); (GyY);
(" | GyZ = "); (GyZ);
delay(333);
}
2、需要获取dmp数据,在管理库中检索mpu6050,安装MPU6050_tockn,对应github地址:
/tockn/MPU6050_tockn
注意,修改引脚号:
(21, 22);//SDA SDL for esp32