Site icon Blog Usinainfo

Magnetômetro Arduino HMC5883L – Projeto Prático com Display

Em diversos tipos de sistemas de navegação de robôs, pessoas e astronomia, necessitamos determinar a orientação do movimento. Desse modo, necessitamos da bússola a fim de determinar essas orientações. Portanto, por meio dela temos a capacidade de detectar a direção da partícula em movimento. Nesse artigo Magnetômetro Arduino HMC5883L em um Projeto Prático com Display, apresentaremos o processo de construção da bússola com Arduino e o sensor GY 273.

De acordo com o problema, utilizaremos o sensor GY 273, para coleta de dados das informações de direção e apresentaremos no LCD 16×2 com o Arduino.

A seguir, apresentaremos a estrutura de desenvolvimento do projeto.

 

Desenvolvimento do Magnetômetro Arduino HMC5883L

Primeiramente, o dispositivo desenvolvido é apresentado na Figura 1. Por meio dele, podemos utilizá-lo na orientação de pessoas, robôs e astronomia, por exemplo.

Portanto, esse circuito tem a finalidade de determinar a orientação por meio do sensor GY 273. Em seguida, os dados coletados serão utilizados para calcular e apresentar a direção cardeal do objeto no LCD 16×2.

 

Esquemático Magnetômetro Arduino HMC5883L Projeto Prático com Display

 

Em seguida, apresentamos a lista completa dos componentes utilizados nesse projeto.

 

Lista de Componentes para o Projeto Magnetômetro Arduino

A seguir, iniciaremos a apresentação do desenvolvimento da lógica para construção da bússola com o Arduino.

 

Programação da Bússola com Arduino

A princípio, utilizaremos o módulo GY-273, que possui o sensor HMC5883L. Por meio desse sensor, desenvolvemos a lógica para detectarmos a direção de todos os pontos de Norte a Sul e, em seguida, apresentamos as direções no LCD. A seguir, apresentamos a lógica completa para a criação da bússola digital com Arduino.
[crayon-662dee001d5ab112239306/]
 

Agora, apresentaremos a discussão passo a passo do código desenvolvido.

Inicialmente, implementamos as bibliotecas e, em seguida, inicializamos o uso da comunicação com o sensor e o LCD na função setup. O código é apresentado a seguir.
[crayon-662dee001d5b0758550658/]
Ao final da função, apresentamos a mensagem Direção na linha 0 e coluna 0. Em seguida, o fluxo de execução entrará na função loop. Após isto, iniciará o processo de cálculo do ângulo de orientação do sensor em graus, conforme apresentado abaixo.
[crayon-662dee001d5b1756366216/]
Logo após, o sistema ajustará o ângulo entre 0º e 360º, caso o ângulo seja negativo, conforme apresentado a seguir.
[crayon-662dee001d5b6458678726/]
Finalmente, após o angulo ser ajustado entre 0º e 360º, serão executadas 8 condições. Desse modo, cada condição possui uma faixa de valores de ângulos, que representam uma direção específica. A seguir, são apresentadas as 8 condições para cada faixa de ângulo.
[crayon-662dee001d5b7902337895/]
Logo, baseado nas condições apresentadas acima, o sistema apresentará a orientação do dispositivo. Isto pode ser visto na Figura 2.

Bússola com Arduino indicando a direção Norte.

 

Portanto, de acordo com a alteração na posição do ângulo do sensor HMC5883, o sistema apresentará uma nova orientação na tela do LCD. A seguir, apresentaremos algumas sugestões de aplicações e projetos futuros com o sensor HMC5883.

 

Conclusão

De acordo com o sistema apresentado, o sensor apresentou estabilidade nas medições das orientações com Arduino. Portanto, por meio dele, é possível aplicá-lo em sistemas que necessitam de cálculo e indicação de orientação na robótica e em outros dispositivos.

Além disso, esse dispositivo sensor é bastante utilizado por observadores da área de astronomia. Dessa forma, é possível realizar cálculos e posicionar os dispositivos de observação para análise dos astros.

Por fim, agradecemos sua leitura e convidamos a deixar suas dúvidas sobre o funcionamento ou discutir novos projetos utilizando esse sensor.

 

Arquivos de Projeto

A seguir, disponibilizamos a lista de arquivos para download e execução do seu projeto.

Biblioteca do Sensor HMC5883

Biblioteca de comunicação I2C com o LCD

 

Sair da versão mobile