¿Lecturas extrañas del giroscopio ITG3200?

Tengo problemas para hacer que este giroscopio funcione. Puedo obtener lecturas del eje Z de él. Si no lo muevo, los ejes X e Y muestran constantemente -1. Cuando muevo el giroscopio, X e Y saltan un poco (unos cientos) pero tan pronto como me detengo, vuelven a -1. Cualquier sugerencia es apreciada. ¡¡Gracias!!

Proporcione con qué código/biblioteca está trabajando; (y un esquema/boceto rápido de sus partes también sería útil) para llegar a una respuesta rápida. Un valor negativo-uno podría significar cualquier número de cosas dependiendo de cómo esté escrito el código.
¿Estás seguro de que no está haciendo lo que se supone que debe hacer? Parece que está emitiendo el Δ θ por intervalo, que es como funcionan los giroscopios. Necesitamos más información.

Respuestas (2)

He tenido problemas con sensores I2C e implementaciones de biblioteca rotas. En mi experiencia, la forma más rápida de depurar el problema es capturar un rastro y asegurarse de que se vea correcto.

Hay muchas formas comunes de arruinar I2C:

  • Sin dominadas o dominadas demasiado débiles
  • Direcciones I2C confusas de 7 y 8 bits
  • Implementación de software rota que omite el NACK al final de una lectura
  • No usar arranques repetidos cuando se requieren
  • SDA y SCL se intercambian

Consulte mi tutorial de I2C con más consejos de depuración .

Para el ITG3200, me aseguraría de que la lectura del registro WHO_AM_I sea exitosa antes de intentar leer los valores. También vea esta pregunta que detalla la rareza del Vlogic con ese giroscopio .

Intente leer el registro WHO_AM_I primero, lo que devolvería 0x69 o 0x68 según su circuito. Después de eso, asegúrese de realizar la configuración correcta que requiere escribir 9 en el registro DLPF_FS y 25 en SMPLRT_DIV (estas configuraciones son predeterminadas, es posible que necesite un divisor diferente y elimine el filtro de paso bajo, etc.). SI todo está bien y todavía obtienes el mismo resultado, estaría funcionando correctamente. Los giroscopios funcionan con la regla de cambio de movimiento. No calcula su ángulo, pero calcula el cambio de ángulo en el tiempo. Devolver -1 y cambiar el movimiento me parece bien. También debe tener en cuenta que estos son los valores de ADC e ITG-3200 tiene valores de adc internos. Debe mantenerlo quieto y probar los resultados para obtener el mejor resultado.