#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
Adafruit_MPU6050 mpu;
void setup(void) {
Serial.begin(9600);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
}
}
mpu.setAccelerometerRange(MPU6050_RANGE_8_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void loop() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
oled.clearDisplay();
oled.setTextSize(1);
oled.setCursor(0, 0);
oled.print("Accel:");
oled.setCursor(0, 10);
oled.printf("X: %.2f", a.acceleration.x);
oled.setCursor(0, 20);
oled.printf("Y: %.2f", a.acceleration.y);
oled.setCursor(0, 30);
oled.printf("Z: %.2f", a.acceleration.z);
oled.setCursor(0, 40);
oled.print("Gyro:");
oled.setCursor(0, 50);
oled.printf("X: %.2f", g.gyro.x);
oled.setCursor(0, 60);
oled.printf("Y: %.2f", g.gyro.y);
oled.display();
delay(500);
}