- Componentes requeridos:
- Sensor giroscópico MPU6050:
- Descripción:
- Diagrama de circuito y explicación:
- Explicación de programación
El sensor MPU6050 tiene muchas funciones en un solo chip. Consiste en un acelerómetro MEMS, un giroscopio MEMS y un sensor de temperatura. Este módulo es muy preciso al convertir valores analógicos a digitales porque tiene un hardware convertidor de analógico a digital de 16 bits para cada canal. Este módulo es capaz de capturar canales x, y, z al mismo tiempo. Tiene una interfaz I2C para comunicarse con el controlador de host. Este módulo MPU6050 es un chip compacto que tiene acelerómetro y giroscopio. Este es un dispositivo muy útil para muchas aplicaciones como drones, robots, sensores de movimiento. También se llama giroscopio o acelerómetro de triple eje.
Hoy, en este artículo, vamos a conectar este giroscopio MPU6050 con Arduino y mostrar los valores sobre 16x2 LCD.
Componentes requeridos:
- Arduino Uno
- MPU-6050
- BOTE 10K
- Cable pasa corriente
- Tablero de circuitos
- cable USB
- Fuente de alimentación
Sensor giroscópico MPU6050:
MPU-6050 es un giroscopio y acelerómetro de 8 pines y 6 ejes en un solo chip. Este módulo funciona en la comunicación serie I2C de forma predeterminada, pero se puede configurar para la interfaz SPI configurándolo en el registro. Para I2C, tiene líneas SDA y SCL. Casi todos los pines son multifuncionales, pero aquí solo procedemos con los pines del modo I2C.
Configuración de pines:
Vcc: este pin se utiliza para alimentar el módulo MPU6050 con respecto a tierra
GND: este es el pin de tierra
SDA: - El pin SDA se utiliza para datos entre el controlador y el módulo mpu6050
SCL: el pin SCL se utiliza para la entrada de reloj
XDA: - Este es el sensor I2C SDA Línea de datos para configurar y leer desde sensores externos ((opcional) no se usa en nuestro caso)
XCL: - Esta es la línea de reloj I2C SCL del sensor para configurar y leer desde sensores externos ((opcional) no se usa en nuestro caso)
ADO: - Dirección de esclavo I2C LSB (no aplicable en nuestro caso)
INT: - Pin de interrupción para indicación de datos listos.
Descripción:
En este artículo, mostramos lecturas de temperatura, giroscopio y acelerómetro en LCD usando MPU6050 con Arduino. Este módulo nos da valores de fila y valores normalizados en la salida, pero los valores de fila no son estables, por lo que aquí mostramos valores normalizados en LCD. Si solo desea el valor del acelerómetro, también puede usar el acelerómetro ADXL335 con Arduino.
En este proyecto, primero mostramos un valor de temperatura en la pantalla LCD y después de 10 segundos mostramos valores de giroscopio y después de 10 segundos tenemos lecturas de acelerómetro como se muestra en las imágenes a continuación:
Diagrama de circuito y explicación:
El diagrama de circuito, para la interfaz MPU6050 con Arduino, es muy simple aquí hemos utilizado una pantalla LCD y MPU6050. Y aquí hemos utilizado una fuente de alimentación USB para computadora portátil. Se utiliza un potenciómetro de 10k para controlar el brillo de la pantalla LCD. En relación con MPU6050, hemos realizado 5 conexiones en las que hemos conectado la fuente de alimentación de 3.3v y tierra del MPU6050 a los 3.3v y tierra de Arduino. Los pines SCL y SDA del MPU6050 están conectados con los pines A4 y A5 de Arduino. Y el pin INT de MPU6050 está conectado para interrumpir 0 de Arduino (D2). Los LCD's RS, RW y EN están conectados directamente a 8, gnd y 9 de Arduino. El pin de datos está conectado directamente al pin digital número 10, 11, 12 y 13.
Explicación de programación
La parte de programación también es fácil para este proyecto. Aquí hemos utilizado esta biblioteca MPU6050 para conectarla con Arduino. Entonces, antes que nada, necesitamos descargar la biblioteca MPU6050 de GitHub e instalarla en Arduino IDE.
Después, podemos encontrar códigos de ejemplo en el ejemplo. El usuario puede probar ese código subiéndolo directamente a Arduino y puede ver los valores en el monitor en serie. O el usuario puede usar nuestro código que se proporciona al final del artículo para mostrar los valores en el monitor LCD y en serie.
En codificación, hemos incluido algunas bibliotecas necesarias como MPU6050 y LCD.
#incluir
En la función de configuración , inicializamos ambos dispositivos y escribimos un mensaje de bienvenida en la pantalla LCD
configuración vacía () {lcd.begin (16,2); lcd.createChar (0, grado); Serial.begin (9600); Serial.println ("Inicializar MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Dispositivo no encontrado"); Serial.println ("No se pudo encontrar un sensor MPU6050 válido, verifique el cableado"); retraso (500); } cuenta = 0; mpu.calibrateGyro (); mpu.setThreshold (3); En función de bucle , hemos llamado tres funciones en cada 10 segundos para mostrar la temperatura, el giroscopio y la lectura del acelerómetro en la pantalla LCD. Estas tres funciones son tempShow, gyroShow y accelShow , puede verificar esas funciones en el código completo de Arduino que se proporciona al final de este artículo:
bucle vacío () {lcd.clear (); lcd.print ("Temperatura"); st largo = milis (); Serial.println ("Temperatura"); mientras (millis ()
El giroscopio MPU6050 y el acelerómetro se utilizan para detectar la posición y orientación de cualquier dispositivo. Gyro utiliza la gravedad de la tierra para determinar las posiciones de los ejes x, y y z y el acelerómetro detecta según la tasa de cambio de movimiento. Ya usamos el acelerómetro con Arduino en muchos de nuestros proyectos como:
- Robot controlado por gestos manuales basado en acelerómetro
- Sistema de alerta de accidentes de vehículos basado en Arduino
- Alarma del detector de terremotos usando Arduino