Índice:

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 fóton de partícula: 4 etapas

Vídeo: Medição de campo magnético usando HMC5883 e fóton de partícula: 4 etapas

Vídeo: Medição de campo magnético usando HMC5883 e fóton de partícula: 4 etapas
Vídeo: hmc5883l Arduino compass, magnetometer sensor, compass navigation"Arduino Project for beginners 2024, Novembro
Anonim
Image
Image

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 fótons de partículas. Particle photon é uma placa que facilita o envio e recebimento de dados do site, que está dando suporte ao recurso mais básico da Internet Of Things (IoT).

Etapa 1: Hardware necessário:

Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário

Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:

1. HMC5883

2. Partícula de fóton

3. Cabo I2C

4. Escudo I2C para Fóton de Partículas

Etapa 2: Conexão de Hardware:

Conexão de hardware
Conexão de hardware
Conexão de hardware
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 fóton da partícula. 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 para medir a intensidade do campo magnético:

Código para medir a intensidade do campo magnético
Código para medir a intensidade do campo magnético

Vamos começar com o código da partícula agora.

Ao usar o módulo sensor com o Arduino, incluímos as bibliotecas application.h e spark_wiring_i2c.h. A biblioteca "application.h" e spark_wiring_i2c.h contém as funções que facilitam a comunicação i2c entre o sensor e a partícula.

Todo o código da partícula é fornecido abaixo para a conveniência do usuário:

#incluir

#incluir

// O endereço HMC5883 I2C é 0x1E (30)

#define Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

void setup ()

{

// Definir variável

Particle.variable ("i2cdevice", "HMC5883");

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

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

xMag = ((dados [0] * 256) + dados [1]);

if (xMag> 32767)

{

xMag - = 65536;

}

zMag = ((dados [2] * 256) + dados [3]);

if (zMag> 32767)

{

zMag - = 65536;

}

yMag = ((dados [4] * 256) + dados [5]);

if (yMag> 32767)

{

yMag - = 65536;

}

// Saída de dados para o painel

Particle.publish ("Magnetic Field in X-Axis:", String (xMag));

atraso (1000);

Particle.publish ("Magnetic Field in Y-Axis:", String (yMag));

atraso (1000);

Particle.publish ("Magnetic Field in Z-Axis:", String (zMag));

atraso (1000);

}

A função Particle.variable () cria as variáveis para armazenar a saída do sensor e a função Particle.publish () exibe a saída no painel do site.

A saída do sensor é mostrada na imagem acima para sua referência.

Etapa 4: Aplicativos:

Formulários
Formulários

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: