Como Conectar A Bússola Digital HMC5883 Ao Arduino

Índice:

Como Conectar A Bússola Digital HMC5883 Ao Arduino
Como Conectar A Bússola Digital HMC5883 Ao Arduino

Vídeo: Como Conectar A Bússola Digital HMC5883 Ao Arduino

Vídeo: Como Conectar A Bússola Digital HMC5883 Ao Arduino
Vídeo: Arduino desde cero en Español - Capítulo 48 - Magnetómetro 3 ejes Brújula digital QMC5883L bus I2C 2024, Maio
Anonim

Vamos considerar a conexão do módulo GY-273 com a bússola digital de três eixos Honeywell HMC5883L. Este microcircuito pode ser utilizado para medições magnetométricas, em navegação, caso não seja necessária uma elevada precisão de medição (com erro de 1 … 2 graus e possibilidade de calibração). O dispositivo é conectado por meio da interface I2C.

Digital Compass HMC5883
Digital Compass HMC5883

Necessário

  • - Bússola digital HMC5883;
  • - Arduino;
  • - placa de protótipo e fios de conexão;
  • - computador.

Instruções

Passo 1

Estas são as principais características de uma bússola magnética:

- Sensor magneticamente sensível de 3 eixos;

- ADC de 12 bits com resolução de 2 mGs (miligauss);

- autoteste integrado;

- baixa tensão de operação e baixo consumo;

- interface digital I2C;

- alta taxa de pesquisa - até 160 vezes por segundo (o tempo de uma medição é de cerca de 6 ms);

- a precisão da determinação da direção é 1 °… 2 °;

- pode ser usado em campos magnéticos fortes (até ± 8 Gauss).

O diagrama para conectar o sensor magnético HMC5883L ao Arduino é mostrado na figura. É muito compacto e simples, porque A interface I2C de dois fios é ótima porque requer poucas conexões. Você pode usar uma placa de ensaio.

Conectando a bússola digital HMC5883 ao Arduino
Conectando a bússola digital HMC5883 ao Arduino

Passo 2

Deve ser parecido com a foto. Também conectarei um analisador lógico aos barramentos SCL e SDA para monitorar a troca de informações entre o Arduino e o módulo HMC5883. Não é obrigatório.

Bússola digital HMC5883 conectada ao Arduino na placa de ensaio
Bússola digital HMC5883 conectada ao Arduino na placa de ensaio

etapa 3

Como um primeiro conhecimento, vamos tentar ler os registros de identificação 10 (0xA), 11 (0xB) e 12 (0xC) da bússola digital HMC5883 e escrever um esboço como na figura. Ele é fornecido com comentários detalhados.

Sketch lendo os registros de identificação do HMC5883
Sketch lendo os registros de identificação do HMC5883

Passo 4

O sinal obtido com o analisador lógico será conforme mostrado na ilustração.

O que isto significa? O primeiro byte é o endereço I2C com o qual nós (o dispositivo mestre, Arduino) estabelecemos a comunicação (alto 7 bits 0x1E) e o modo de gravação (baixo bit - 0x0); o número é 0x3C. O segundo byte é o número 0xA, que escrevemos para o endereço 0x1E e o bit de confirmação do sensor HMC5883L, que é o escravo. Este é o número do registro a partir do qual começaremos a ler os dados. Isso conclui a primeira transação. O próximo começa. O terceiro byte é uma solicitação de leitura do escravo (os 7 bits mais significativos são o endereço 0x1E, o 8º bit é a operação de leitura 0x1; o número resultante é 0x3D). Os últimos 3 três bytes são a resposta do escravo HMC5883L dos registros 0xA, 0xB e 0xC, respectivamente.

A bússola digital HMC5883L se move pelos registros de forma independente durante a leitura contínua. Aqueles. não é necessário (mas não proibido) especificar o caso a cada vez. Por exemplo, se em vez de 0xA escrevermos 0x3 e lermos 10 vezes, obteríamos valores em 10 registradores, começando do 3º ao 12º.

E quais são esses três números - 0x48, 0x34, 0x33? Usando a planilha de dados da bússola digital HMC5883L novamente, veremos que esses são os valores padrão para os três registros de identificação.

Diagrama de tempo de troca I2C com bússola digital HMC5883
Diagrama de tempo de troca I2C com bússola digital HMC5883

Etapa 5

Para obter os dados da bússola digital no campo magnético, você precisa ler os registros de 3 a 8, assim como lemos os registros de identificação. A única diferença é que os dados para cada um dos três eixos X, Y e Z são apresentados como números de byte duplo. Convertendo-os em números decimais, obtemos instruções ao longo de cada um dos três eixos.

Recomendado: