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.
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.
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.
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.
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.
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.