Paso 5: Cómo leer los datos de la hoja y el código
A continuación, tenemos que ver la hoja de datos para el sensor giroscópico. Esto nos dará información acerca de cómo los trabajos de sensor y lo registra necesitamos lectura y escritura. El sensor que utiliza el PmodGYRO es el L3G4200D y aquí está la hoja de datos para él. En la página 10 se dispone de información sobre las distintas resoluciones para cada una de las gamas. Estos serán importantes para convertir el valor entero con signo en un valor significativo en grados por segundo.
En la página 22, la dirección de esclavo se da como 110100xb. Puesto que el pin SDO está conectado a la fuente de tensión, la dirección es 1101001b que corresponde a 0x69 en hexadecimal o 105 en decimal. Esta página detalla también si usted quiere leer más de un byte a la vez, usted puede auto-increment los datos colocando un 1 en la posición de la MSb. Esto será importante cuando la lectura de los registros de datos (más sobre esto más adelante).
En la página 29, CTRL_REG1 0 x 20 se detalla. Aquí podemos ver lo que cada bit significa en dicho registro. Queremos poner el dispositivo en modo normal y activar el x, y y z ejes así que tenemos que escribir 00001111 para registro 0 x 20. 00001111 es 0xF en hex en labview utilizamos una escritura I2C para registro 0 x 20 y escribimos 0xF (la próxima entrada en la matriz).
En la página 32, CTRL_REG4 0x23 se detalla. Vemos que esto es donde podemos configurar la detección de escala completa. Para 250 dps, necesitamos 00000000 (0 x 0), para 500 necesitamos 00010000 (0 x 10), para 2000 dps podemos poner 00100000 o 00110000 (utilicé 0 x 30). Una estructura case se utiliza para escribir el valor hexadecimal correcto para este registro dependiendo de qué rango es seleccionado.
Hay otras opciones que puede meterse con si usted está interesado en los registros de control.
Ahora tenemos que averiguar donde se almacenan los datos y cómo se almacena. En la página 35, podemos observar que los valores se almacenan de registro 0x28 para registrar 0x2D (6 bytes de datos, 2 para cada eje) en 2 completar formulario. Para leer esto, tenemos a punto para el primer registro 0x28 con un 1 en el MSb de lugar por lo que los datos se pueden todos leer a la vez (auto-increment). 0x28 con un 1 en el lugar de MSb es 0xA8. Utilizar I2C write para escribir este registro utilizar I2C leer a leer 6 bytes de datos y guarde en un array.
A continuación, los bytes son procesados para dar los valores que queremos. Usar matriz de índice para leer entradas individuales y empalmar la x, y, los datos del eje z. Multiplicar todos estos valores de 16 bits firmados por la resolución una vez que se convierten al valor de complemento del 2 ya que es cómo la hoja de datos dijo que estas serán reportadas desde el sensor.
Ahora hacer una I2C cerca y la parte más difícil está hecha!