Consideremos la conexión del módulo GY-273 con la brújula digital de tres ejes Honeywell HMC5883L. Este microcircuito se puede utilizar para mediciones magnetométricas, en navegación, si no se requiere una alta precisión de medición (con un error de 1 … 2 grados y posibilidad de calibración). El dispositivo está conectado a través de la interfaz I2C.
Necesario
- - Brújula digital HMC5883;
- - Arduino;
- - placa prototipo y cables de conexión;
- - computadora.
Instrucciones
Paso 1
Estas son las principales características de una brújula magnética:
- Sensor magnéticamente sensible de 3 ejes;
- ADC de 12 bits con una resolución de 2 mG (miligauss);
- autocomprobación incorporada;
- baja tensión de funcionamiento y bajo consumo;
- interfaz digital I2C;
- alta tasa de sondeo: hasta 160 veces por segundo (el tiempo de una medición es de aproximadamente 6 ms);
- la precisión para determinar la dirección es de 1 °… 2 °;
- se puede utilizar en campos magnéticos fuertes (hasta ± 8 Gauss).
El diagrama para conectar el sensor magnético HMC5883L al Arduino se muestra en la figura. Es muy compacto y sencillo, porque La interfaz I2C de dos cables es excelente porque requiere pocas conexiones. Puedes usar una placa de pruebas.
Paso 2
Debería parecerse a la foto. También conectaré un analizador lógico a los buses SCL y SDA para monitorear el intercambio de información entre el Arduino y el módulo HMC5883. No es obligatorio.
Paso 3
Como primer conocimiento, intentemos leer los registros de identificación 10 (0xA), 11 (0xB) y 12 (0xC) de la brújula digital HMC5883 y escribir un boceto como en la figura. Se proporciona con comentarios detallados.
Paso 4
La señal obtenida con el analizador lógico será como se muestra en la ilustración.
¿Qué significa? El primer byte es la dirección I2C con la que nosotros (el dispositivo maestro, Arduino) establecemos la comunicación (alto 7 bits 0x1E), y el modo de escritura (bit bajo - 0x0); el número es 0x3C. El segundo byte es el número 0xA, que escribimos para la dirección 0x1E y el bit de confirmación del sensor HMC5883L, que es el esclavo. Este es el número de registro desde el que comenzaremos a leer datos. Con esto concluye la primera transacción. Empieza el siguiente. El tercer byte es una solicitud de lectura del esclavo (los 7 bits más significativos son la dirección 0x1E, el octavo bit es la operación de lectura 0x1; el número resultante es 0x3D). Los tres últimos tres bytes son la respuesta del esclavo HMC5883L de los registros 0xA, 0xB y 0xC, respectivamente.
La brújula digital HMC5883L se mueve a través de los registros de forma independiente durante la lectura continua. Esos. no es necesario (pero no está prohibido) especificar el caso cada vez. Por ejemplo, si en lugar de 0xA escribiéramos 0x3 y leímos 10 veces, obtendríamos valores en 10 registros, comenzando del 3 al 12.
¿Y cuáles son estos tres números: 0x48, 0x34, 0x33? Usando nuevamente la hoja de datos de la brújula digital HMC5883L, veremos que estos son los valores predeterminados para los tres registros de identificación.
Paso 5
Para obtener los datos de la brújula digital en el campo magnético, debe leer los registros del 3 al 8, al igual que leemos los registros de identificación. La única diferencia es que los datos para cada uno de los tres ejes X, Y y Z se presentan como números de doble byte. Al convertirlos a números decimales, obtenemos direcciones a lo largo de cada uno de los tres ejes.