Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-23 15:03
O HMC5883 é uma bússola digital projetada para detecção magnética de baixo campo. Este dispositivo possui uma ampla faixa de campo magnético de +/- 8 Oe e uma taxa de saída de 160 Hz. O sensor HMC5883 inclui drivers de tira de desmagnetização automática, cancelamento de deslocamento e um ADC de 12 bits que permite a precisão do rumo da bússola de 1 ° a 2 °. Todos os Mini Módulos I²C são projetados para operar a 5 VCC.
Neste tutorial, vamos explicar o funcionamento detalhado do HMC5883 com o Arduino nano.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. HMC5883
2. Arduino Nano
3. Cabo I2C
4. Escudo I2C para Arduino Nano
Etapa 2: Conexão de Hardware:
A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e o arduino nano. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:
O HMC5883 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.
Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico. Você só precisa de quatro fios!
São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.
Essas conexões são demonstradas nas fotos acima.
Etapa 3: Código Arduino para medir a intensidade do campo magnético:
Vamos começar com o código do Arduino agora.
Ao usar o módulo sensor com o Arduino, incluímos a biblioteca Wire.h. A biblioteca "Wire" contém as funções que facilitam a comunicação i2c entre o sensor e a placa Arduino.
Todo o código do Arduino é fornecido abaixo para a conveniência do usuário:
#incluir
// O endereço HMC5883 I2C é 0x1E (30)
#define Addr 0x1E
void setup ()
{
// Inicializar a comunicação I2C como MASTER
Wire.begin ();
// Inicialize a comunicação serial, defina a taxa de transmissão = 9600
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione configurar o registro A
Wire.write (0x00);
// Defina a configuração de medição normal, taxa de saída de dados = 0,75 Hz
Wire.write (0x60);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o modo de registro
Wire.write (0x02);
// Definir medição contínua
Wire.write (0x00);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [6];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de dados
Wire.write (0x03);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes de dados
Wire.requestFrom (Addr, 6);
// Leia 6 bytes de dados
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
if (Wire.available () == 6)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
dados [2] = Wire.read ();
dados [3] = Wire.read ();
dados [4] = Wire.read ();
dados [5] = Wire.read ();
}
atraso (300);
// Converta os dados
int xMag = ((dados [0] * 256) + dados [1]);
int zMag = ((dados [2] * 256) + dados [3]);
int yMag = ((dados [4] * 256) + dados [5]);
// Dados de saída para monitor serial
Serial.print ("Campo magnético no eixo X:");
Serial.println (xMag);
Serial.print ("Campo magnético no eixo Y:");
Serial.println (yMag);
Serial.print ("Campo magnético no eixo Z:");
Serial.println (zMag);
atraso (300);
}
Na biblioteca de fios, Wire.write () e Wire.read () são usados para escrever os comandos e ler a saída do sensor. A parte seguinte do código ilustra a leitura da saída do sensor.
// Lê 6 bytes de dados // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); dados [1] = Wire.read (); dados [2] = Wire.read (); dados [3] = Wire.read (); dados [4] = Wire.read (); dados [5] = Wire.read (); }
Serial.print () e Serial.println () são usados para exibir a saída do sensor no monitor serial do IDE do Arduino.
A saída do sensor é mostrada na imagem acima.
Etapa 4: Aplicativos:
HMC5883 é um módulo multi-chip de montagem em superfície projetado para detecção magnética de baixo campo com uma interface digital para aplicações como bússola e magnetometria de baixo custo. Seu alto nível de precisão e exatidão de um a dois graus permite a Navegação Pedestre e Aplicações LBS.
Recomendado:
Medição de campo magnético usando HMC5883 e Raspberry Pi: 4 etapas
Medição de campo magnético usando HMC5883 e Raspberry Pi: O HMC5883 é uma bússola digital projetada para detecção magnética de baixo campo. Este dispositivo possui uma ampla faixa de campo magnético de +/- 8 Oe e uma taxa de saída de 160 Hz. O sensor HMC5883 inclui drivers de cinta de desmagnetização automática, cancelamento de deslocamento e
Medição de campo magnético usando HMC5883 e fóton de partícula: 4 etapas
Medição de campo magnético usando HMC5883 e partícula de fóton: O HMC5883 é uma bússola digital projetada para detecção magnética de baixo campo. Este dispositivo possui uma ampla faixa de campo magnético de +/- 8 Oe e uma taxa de saída de 160 Hz. O sensor HMC5883 inclui drivers de cinta de desmagnetização automática, cancelamento de deslocamento e
Medição de pressão usando CPS120 e Arduino Nano: 4 etapas
Medição de pressão usando CPS120 e Arduino Nano: CPS120 é um sensor de pressão absoluta capacitiva de alta qualidade e baixo custo com saída totalmente compensada. Ele consome muito menos energia e é composto por um sensor microeletromecânico (MEMS) ultrapequeno para medição de pressão. Um baseado em sigma-delta
Medição de temperatura usando STS21 e Arduino Nano: 4 etapas
Medição de temperatura usando STS21 e Arduino Nano: o sensor digital de temperatura STS21 oferece desempenho superior e uma pegada de economia de espaço. Ele fornece sinais calibrados e linearizados em formato digital I2C. A fabricação deste sensor é baseada na tecnologia CMOSens, que atribui ao superior
Sensor de campo magnético de 3 eixos: 10 etapas (com imagens)
Sensor de campo magnético de 3 eixos: os sistemas de transferência de energia sem fio estão a caminho de substituir o carregamento convencional com fio. Variando de minúsculos implantes biomédicos até a recarga sem fio de enormes veículos elétricos. Uma parte integrante da pesquisa sobre energia sem fio é