¿Qué significan los valores de 0x10 y 0x08 para los registros del giroscopio MPU6050?

0

Estoy tratando de conectar un giroscopio MPU6050 a arduino ATmega2560 y leer sus valores en bruto de su 6DOF (giroscopio y acc).

Encontré el siguiente código:

//Activate the MPU-6050
  Wire.beginTransmission(0x68);                                        //Start communicating with the MPU-6050
  Wire.write(0x6B);                                                    //Send the requested starting register
  Wire.write(0x00);                                                    //Set the requested starting register
  Wire.endTransmission();                                              //End the transmission
  //Configure the accelerometer (+/-8g)
  Wire.beginTransmission(0x68);                                        //Start communicating with the MPU-6050
  Wire.write(0x1C);                                                    //Send the requested starting register
  Wire.write(0x10);                                                    //Set the requested starting register
  Wire.endTransmission();                                              //End the transmission
  //Configure the gyro (500dps full scale)
  Wire.beginTransmission(0x68);                                        //Start communicating with the MPU-6050
  Wire.write(0x1B);                                                    //Send the requested starting register
  Wire.write(0x08);                                                    //Set the requested starting register
  Wire.endTransmission();                                              //End the transmission

Estoy tratando de romper línea por línea, para entender lo que sucede durante la configuración del giroscopio.

Según hoja de datos de MPU6050 , el I2C está en el registro 0x68 . El I2C nos ayuda a acceder a todos los registros y comunicarse con el maestro conectado. Lo que da las siguientes 3 líneas:

Wire.beginTransmission(0x68);                                        
Wire.write(0x6B);                                                    
Wire.write(0x00);

Según la hoja, el 0x6B es el registro diseñado para habilitar y deshabilitar el giroscopio:

  

Este registro permite al usuario configurar el modo de energía y el reloj   fuente. También proporciona un poco para restablecer todo el dispositivo, y un   Broca para desactivar el sensor de temperatura. Al establecer SUEÑO en 1, el   El MPU-60X0 puede ponerse en modo de suspensión de baja potencia. Cuando el ciclo se establece en 1   mientras que SLEEP está deshabilitado, el MPU-60X0 se pondrá en modo Ciclo. En   Modo ciclo, el dispositivo alterna entre el modo de reposo y el despertar para tomar   una sola muestra de datos del acelerómetro a una frecuencia determinada por   LP_WAKE_CTRL (registro 108). Para configurar la frecuencia de activación, use   LP_WAKE_CTRL dentro del registro de Power Management 2 (Registro 108). Un   Oscilador interno de 8 MHz, reloj basado en giroscopio o fuentes externas   Se puede seleccionar como la fuente de reloj MPU-60X0. Cuando el interno de 8 MHz   El oscilador o una fuente externa se elige como la fuente del reloj, el   El MPU-60X0 puede funcionar en modos de baja potencia con los giroscopios desactivados.   Al encenderse, la fuente de reloj MPU-60X0 se establece por defecto en la interna   oscilador. Sin embargo, es altamente recomendable que el dispositivo sea   Configurado para usar uno de los giroscopios (o una fuente de reloj externa)   Como referencia del reloj para mejorar la estabilidad. La fuente del reloj puede ser   seleccionado de acuerdo con la siguiente tabla.

Entonces, ¿por qué establecemos su valor en 0x00 ?

Y lo mismo para configurar el giroscopio en el registro 0x1B donde las hojas de datos especifican los rangos de escala completa como:

Elcódigoestableceelrangode500dps,entonces,¿porquéelprogramadorestableceelregistroen0x08ynoen0x01dondeelFS_SEL[1:0]deberíacontenerdecimalesde0a3,verdad?

    
pregunta am909090

0 respuestas

Lea otras preguntas en las etiquetas