Konfigurasi dengan Arduino
MPU6050 menggunakan serial i2c dalam melakukan komunikasi dengan Arduino. sehingga kita memperlukan pin SDA/SCL. Pada kasus di bawah saya menggunakan Arduino Mega ADK sebagai microcontrollernya.dengan susunan sebagai berikut:
Mega ADK | MPU6050 |
SDA (20) | SDA |
SCL (21) | SCL |
5v | VCC |
GND | GND |
Source Code
Karena demi kemudahan dalam proses pemrograman, maka kita menggunakan beberapa library diantaranya :- i2c
- MPU6050
- Wire
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <I2Cdev.h> | |
#include <MPU6050.h> | |
#include <Wire.h> | |
MPU6050 gy_521; | |
int16_t ax, ay, az; | |
int16_t gx, gy, gz; | |
int ACCX,ACCY; | |
int GYRX,GYRY,GYRZ,sensitif; | |
void setup(){ | |
Serial.begin(9600); | |
Wire.begin(); | |
gy_521.initialize(); | |
sensitif=350; | |
} | |
void loop(){ | |
acc(); | |
gyro(); | |
delay(100); | |
Serial.print("ax/ay/gx/gy/gz: \t"); | |
Serial.print(ACCX); Serial.print("\t"); | |
Serial.print(ACCY);Serial.print("\t"); | |
Serial.print(GYRX); Serial.print("\t"); | |
Serial.print(GYRY); Serial.print("\t"); | |
Serial.println(GYRZ); | |
} | |
void acc(){ | |
gy_521.getAcceleration(&ax, &ay, &az); | |
ACCX = 57.295*atan((float)ay/ sqrt(pow((float)az,2)+pow((float)ax,2))); | |
ACCY = 57.295*atan((float)-ax/ sqrt(pow((float)az,2)+pow((float)ay,2))); | |
} | |
void gyro(){ | |
gy_521.getRotation(&gx, &gy, &gz); | |
GYRX = gx/sensitif; | |
GYRY = gy/sensitif; | |
GYRZ = gz/sensitif; | |
} | |
Sekian dari saya terimakasih
Posting Komentar untuk "Arduino 11 : Sensor MPU6050 (Gyroscope) di Arduino"
Berilah komentar, saran, dan kritik dengan bijak