#include <Wire.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
// Configuración de la pantalla OLED
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Configuración del MPU6050
Adafruit_MPU6050 mpu;
void setup() {
// Iniciar la comunicación serial
Serial.begin(115200);
// Iniciar la pantalla OLED
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("Error al inicializar la pantalla OLED"));
while (true);
}
display.clearDisplay();
// Iniciar el MPU6050
if (!mpu.begin()) {
Serial.println("Error al inicializar el MPU6050");
while (true);
}
// Configuración del MPU6050
mpu.setAccelerometerRange(MPU6050_RANGE_2_G);
mpu.setGyroRange(MPU6050_RANGE_250_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_21_HZ);
}
void loop() {
// Leer los datos del acelerómetro
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
// Mostrar los datos en la pantalla OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.println("Acelerometro:");
display.print("X: "); display.print(a.acceleration.x); display.println(" m/s^2");
display.print("Y: "); display.print(a.acceleration.y); display.println(" m/s^2");
display.print("Z: "); display.print(a.acceleration.z); display.println(" m/s^2");
display.display();
// Esperar un poco antes de la próxima lectura
delay(500);
}