Innholdsfortegnelse:

Magnetisk feltmåling ved hjelp av HMC5883 og Particle Photon: 4 trinn
Magnetisk feltmåling ved hjelp av HMC5883 og Particle Photon: 4 trinn

Video: Magnetisk feltmåling ved hjelp av HMC5883 og Particle Photon: 4 trinn

Video: Magnetisk feltmåling ved hjelp av HMC5883 og Particle Photon: 4 trinn
Video: Kuantum Elektrodinamiği ve Uygulamaları | Modern Fiziğin İlkeleri 2024, November
Anonim
Image
Image

HMC5883 er et digitalt kompass designet for lavfelt magnetisk sansing. Denne enheten har et bredt magnetfeltområde på +/- 8 Oe og en utgangshastighet på 160 Hz. HMC5883-sensoren inkluderer automatiske degaussing-stroppdrivere, offset-kansellering og en 12-biters ADC som muliggjør 1 ° til 2 ° kompassretningsnøyaktighet. Alle I²C minimoduler er designet for å fungere på 5VDC.

I denne opplæringen skal vi forklare detaljert arbeid av HMC5883 med partikkelfoton. Particle foton er et kort som letter å sende og motta data fra nettstedet, som støtter den mest grunnleggende funksjonen til Internet Of Things (IoT).

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. HMC5883

2. Partikkelfoton

3. I2C -kabel

4. I2C -skjold for partikkelfoton

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvarekoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og partikkelfotonet. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

HMC5883 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker. Alt du trenger er fire ledninger!

Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Kode for å måle magnetfeltintensitet:

Kode for måling av magnetfeltintensitet
Kode for måling av magnetfeltintensitet

La oss begynne med partikkelkoden nå.

Mens vi bruker sensormodulen med Arduino, inkluderer vi application.h og spark_wiring_i2c.h biblioteket. "application.h" og spark_wiring_i2c.h biblioteket inneholder funksjonene som letter i2c -kommunikasjonen mellom sensoren og partikkelen.

Hele partikkelkoden er gitt nedenfor for brukerens bekvemmelighet:

#inkludere

#inkludere

// HMC5883 I2C -adressen er 0x1E (30)

#define Addr 0x1E

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

ugyldig oppsett ()

{

// Angi variabel

Partikkel.variabel ("i2cdevice", "HMC5883");

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Initialiser I2C -kommunikasjon som MASTER

Wire.begin ();

// Initialize Serial Communication, set baud rate = 9600

Serial.begin (9600);

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg konfigurer register A

Wire.write (0x00);

// Angi normal målekonfigurasjon, datautgangshastighet = 0,75Hz

Wire.write (0x60);

// Stopp I2C -overføring

Wire.endTransmission ();

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg Modusregister

Wire.write (0x02);

// Still inn kontinuerlig måling

Wire.write (0x00);

// Stopp I2C -overføring

Wire.endTransmission ();

forsinkelse (300);

}

hulrom ()

{

usignerte int -data [6];

// Start I2C -overføring

Wire.beginTransmission (Addr);

// Velg dataregister

Wire.write (0x03);

// Stopp I2C -overføring

Wire.endTransmission ();

// Be om 6 byte med data

Wire.requestFrom (Addr, 6);

// Les 6 byte med data

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

hvis (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

forsinkelse (300);

// Konverter dataene

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

hvis (xMag> 32767)

{

xMag -= 65536;

}

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

hvis (zMag> 32767)

{

zMag -= 65536;

}

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

hvis (yMag> 32767)

{

yMag -= 65536;

}

// Utdata til dashbordet

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

forsinkelse (1000);

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

forsinkelse (1000);

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

forsinkelse (1000);

}

Particle.variable () -funksjonen oppretter variablene for å lagre sensorens utgang og Particle.publish () -funksjonen viser utgangen på dashbordet til nettstedet.

Sensorutgangen er vist på bildet ovenfor for din referanse.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

HMC5883 er en overflatemontert, multi-chip modul designet for lavfelt magnetisk sensing med et digitalt grensesnitt for applikasjoner som lavpris kompassering og magnetometri. Dens en til to graders høy nøyaktighet og presisjon muliggjør fotgjengernavigasjon og LBS -applikasjoner.

Anbefalt: