下面是一个基本示例,演示如何使用Arduino和MPU-6050加速度计测量加速度数据:
首先,确保你已经连接好了MPU-6050模块到Arduino。连接如下:
VCC - 5V
GND - GND
SCL - A5
SDA - A4
然后,打开Arduino IDE,创建一个新的空白项目。然后,将以下代码复制粘贴到新建项目中:
#include
const int MPU_addr=0x68; // I2C地址
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B); // PWR_MGMT_1寄存器
Wire.write(0); // 唤醒MPU-6050
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop(){
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B); // 从寄存器0x3B开始读取数据
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true); // 请求14个字节的数据
AcX=Wire.read()<<8|Wire.read(); // X轴加速度
AcY=Wire.read()<<8|Wire.read(); // Y轴加速度
AcZ=Wire.read()<<8|Wire.read(); // Z轴加速度
Tmp=Wire.read()<<8|Wire.read(); // 温度
GyX=Wire.read()<<8|Wire.read(); // X轴角速度
GyY=Wire.read()<<8|Wire.read(); // Y轴角速度
GyZ=Wire.read()<<8|Wire.read(); // Z轴角速度
Serial.print("加速度: ");
Serial.print("X = "); Serial.print(AcX);
Serial.print(" | Y = "); Serial.print(AcY);
Serial.print(" | Z = "); Serial.print(AcZ);
Serial.print(" | 温度 = "); Serial.print(Tmp/340.00+36.53); // 温度转换公式
Serial.println(" | 角速度:");
Serial.print("X = "); Serial.print(GyX);
Serial.print(" | Y = "); Serial.print(GyY);
Serial.print(" | Z = "); Serial.println(GyZ);
delay(1000);
}
上传代码到Arduino。然后,打开串口监视器,设置波特率为9600。你将能够看到每隔一秒打印出来的加速度和角速度数据。
这是一个简单的示例,你可以根据自己的需求对代码进行修改和扩展。