arduino鏈接GY-521(MPU6050)模塊
本例使用 `lilypad` 鏈接MPU6050模塊, `arduino uno`作為usb下載器,具體連接方法請移步: http://www.rzrgm.cn/hangxin1940/archive/2013/04/06/3002709.html
## lilypad 與 MPU6050的連接方法

lilypad與mpu6050相對應的引腳:
*+* -> *VCC*
*-* -> *GND*
*a4* -> *SDA*
*a5* -> *SCL*
## 下載i2cdev庫
https://github.com/jrowberg/i2cdevlib/archive/master.zip
解壓縮之后,將arduino文件夾下的代碼添加至arduino ide的類庫路徑
以ubuntu為例:
cp -rf * /usr/share/arduino/libraries
## 測試程序
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
//板載led引腳默認為13
int LED_PIN = 13;
//led狀態(tài)信息
bool blinkState = false;
void setup() {
//接入i2c總線
Wire.begin();
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");
//配置板載led引腳
pinMode(LED_PIN, OUTPUT);
}
//將原始值修正
void fix() {
ax /= 16384;
ay /= 16384;
az /= 16384;
gx /= 131;
gy /= 131;
gz /= 131;
}
//干干其他事
void process() {
}
void loop() {
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
//對原始價值做處理
fix();
//干干其他事
process();
Serial.print("a/g:\t");
//x,y,z軸加速度
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.print("\t");
//x,y,z軸角速度
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.println(gz);
//控制板載led狀態(tài)
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
}
燒寫進lilypad后,可以看到led幾乎是長亮
ubuntu下查看串口信息
sudo ttylog -d /dev/ttyACM0 -b 38400
輸出:

浙公網(wǎng)安備 33010602011771號