Mostrando datos del sensor MPU-6050 en una pantalla LCD 1602 o LCD2004 con Arduino

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

FabricanteInvensense
Número de piezaMPU-6050
Voltaje de lógica/E/S3.3 V / 5 V
Tensión de alimentaciónde 3.3 V a 5 V
Tasa de datos de salida1 kHz (máx.)
Rango de temperaturade -40 a +85 °C
PaqueteQFN
Notas / variantesGiroscopio 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

arduino_wiring_MPU-6050_LCD2004_bb

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.

Imágenes

arduino_wiring_MPU-6050_LCD2004_bb
arduino_wiring_MPU-6050_LCD2004_bb
LCD2004_display-3
LCD2004_display-3
LCD2004_display-1
LCD2004_display-1
LCD2004_display-2
LCD2004_display-2
119-Arduino code for MPU-6050 accelerometer and gyroscope sensor (angles only)
Idioma: C++
120-Arduino code for the MPU-6050 accelerometer and gyroscope sensor (all data)
Idioma: C++
¡Copiado!

Archivos📁

Bibliotecas de Arduino (zip)

Archivo de Fritzing

Otros archivos