Mostrando datos del sensor MPU-6050 en una pantalla LCD 1602 o LCD2004 con Arduino
En este tutorial aprenderemos cómo mostrar datos del sensor MPU-6050 en un LCD 1602 o LCD2004 usando Arduino. El MPU-6050 es un sensor versátil que combina un giroscopio de 3 ejes y un acelerómetro de 3 ejes, lo que lo hace ideal para diversas aplicaciones como la detección de movimiento y la orientación. Al conectar este sensor a una pantalla LCD, podemos visualizar datos del sensor en tiempo real, incluidos los ángulos y la temperatura.

A medida que avancemos en este proyecto, cubriremos los componentes de hardware necesarios, los detalles del cableado y la implementación del código. Esto te ayudará a comprender cómo configurar el MPU-6050 y mostrar su salida en una LCD. Para una mayor aclaración sobre el código, asegúrate de ver el video (en 00:00).
Hardware explicado
Los componentes principales de este proyecto son la placa Arduino, el sensor MPU-6050 y la pantalla LCD (ya sea 1602 o 2004). La placa Arduino actúa como el microcontrolador que procesa los datos del MPU-6050 y los envía a la pantalla LCD.
El sensor MPU-6050 utiliza comunicación I2C para enviar datos al Arduino. Incluye un acelerómetro y un giroscopio, que le permiten detectar movimiento y orientación. La pantalla LCD se utiliza para mostrar los ángulos derivados de los datos del sensor. También se conecta al Arduino mediante I2C, lo que simplifica el cableado y la comunicación.
Detalles de la hoja de datos
| Fabricante | Invensense |
|---|---|
| Número de pieza | MPU-6050 |
| Voltaje de lógica/E/S | 3.3 V / 5 V |
| Tensión de alimentación | de 3.3 V a 5 V |
| Tasa de datos de salida | 1 kHz (máx.) |
| Rango de temperatura | de -40 a +85 °C |
| Paquete | QFN |
| Notas / variantes | Giroscopio y acelerómetro integrados |
- Asegúrese de que el suministro de energía sea el adecuado y esté dentro del rango de voltaje especificado.
- Utilice resistencias pull-up en las líneas I2C si es necesario.
- Comprueba si la dirección I2C es compatible con tu configuración.
- Calibre el sensor para obtener lecturas precisas.
- Tenga cuidado con el cableado para evitar cortocircuitos.
Instrucciones de cableado

Para conectar el MPU-6050 al Arduino, comienza conectando el pin VCC del MPU-6050 al pin 5V del Arduino. A continuación, conecta el pin GND del MPU-6050 a uno de los pines GND del Arduino. Para la comunicación I2C, conecta el pin SDA del MPU-6050 al pin analógico A4 del Arduino y conecta el pin SCL al pin analógico A5.
Para la pantalla LCD, conecta el pin VCC al pin de 5V del Arduino y el pin GND también al pin GND del Arduino. Conecta el pin SDA de la LCD al mismo pin A4 usado para el MPU-6050, y el pin SCL de la LCD al pin A5. De este modo, tanto el MPU-6050 como la LCD comparten las mismas líneas I2C, simplificando el cableado.

Asegúrese de que las conexiones estén seguras y de que no haya cables sueltos. Si su pantalla LCD o sensor no se enciende, verifique nuevamente el cableado y las conexiones.
Ejemplos de código y guía paso a paso
En el código, comenzamos incluyendo las bibliotecas necesarias para el MPU-6050 y la pantalla LCD:
#include
#include
#include
Aquí creamos instancias tanto para el MPU-6050 como para la LCD. El MPU-6050 se inicializa con la biblioteca Wire para comunicación I2C, mientras que la LCD se configura con su dirección y dimensiones.
En la función setup, inicializamos el sensor y la pantalla LCD:

void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
lcd.begin();
lcd.backlight();
lcd.clear();
}
Este código configura la comunicación serie para depuración, inicializa la comunicación I2C y prepara la pantalla LCD para su visualización. La retroiluminación se enciende para hacer visible la pantalla.
En la función loop, leemos continuamente datos del MPU-6050 y los mostramos en la pantalla LCD:
void loop() {
mpu6050.update();
lcd.clear();
lcdDisplay(mpu6050.getAngleX(), mpu6050.getAngleY(), mpu6050.getAngleZ());
delay(100);
}
Este fragmento actualiza los datos del sensor y borra la pantalla LCD para nuevas lecturas cada 100 milisegundos. Se llama a la función lcdDisplay para mostrar los ángulos en la pantalla LCD.
Para comprenderlo por completo, por favor vea el video correspondiente donde se muestra el código completo (en el video en 00:00).
Demostración / Qué esperar
Cuando todo esté configurado correctamente, la pantalla LCD debería mostrar los ángulos de los ejes X, Y y Z en tiempo real. Puedes inclinar el sensor MPU-6050 para ver los cambios en la pantalla. Si encuentras problemas, comprueba si hay polaridad invertida en el cableado o asegúrate de que las direcciones I2C estén correctamente configuradas.
Supervisar los valores en la pantalla LCD le permitirá ver cómo responde el sensor al movimiento y a los cambios de orientación. Si los valores parecen estáticos o incorrectos, verifique las conexiones y asegúrese de que el sensor funcione correctamente.
Recursos y referencias
-
ExternoObtén la biblioteca de GitHubgithub.com
-
ExternoSitio web del fabricanteinvensense.com
Archivos📁
Bibliotecas de Arduino (zip)
-
Biblioteca de Arduino para MPU9250
robojax-MPU9250-master.zip3.38 MB
Archivo de Fritzing
-
Módulo LCD LCD1602-I2C con 4 cables
LCD1602-I2C.fzpz0.01 MB -
Tarjeta MPU-6050 GY-521
MPU-6050 Board GY-521.fzpz0.01 MB -
LCD2004-I2C
LCD2004-I2C.fzpz0.02 MB
Otros archivos
-
Biblioteca LiquidCrystal LCD1602
robojax-LCD1602_LiquidCrystal.zip