Obsah:

Měření magnetického pole pomocí HMC5883 a fotonu částic: 4 kroky
Měření magnetického pole pomocí HMC5883 a fotonu částic: 4 kroky

Video: Měření magnetického pole pomocí HMC5883 a fotonu částic: 4 kroky

Video: Měření magnetického pole pomocí HMC5883 a fotonu částic: 4 kroky
Video: Arduino návody | GSM Shield SIM900 2024, Červenec
Anonim
Image
Image

HMC5883 je digitální kompas určený pro magnetické snímání v nízkém poli. Toto zařízení má široký rozsah magnetického pole +/- 8 Oe a výstupní rychlost 160 Hz. Senzor HMC5883 obsahuje automatické ovladače demagnetizačních popruhů, zrušení offsetu a 12bitový ADC, který umožňuje přesnost směru kompasu 1 ° až 2 °. Všechny moduly I²C Mini jsou navrženy pro provoz při 5 V DC.

V tomto tutoriálu vysvětlíme detailní práci HMC5883 s fotonem částic. Particle photon je deska, která usnadňuje odesílání a přijímání dat z webových stránek a podporuje nejzákladnější funkci internetu věcí (IoT).

Krok 1: Požadovaný hardware:

Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware
Požadovaný hardware

Materiály, které potřebujeme k dosažení našeho cíle, zahrnují následující hardwarové komponenty:

1. HMC5883

2. Foton částic

3. Kabel I2C

4. I2C štít pro částicový foton

Krok 2: Připojení hardwaru:

Připojení hardwaru
Připojení hardwaru
Připojení hardwaru
Připojení hardwaru

Sekce zapojení hardwaru v zásadě vysvětluje zapojení potřebná pro připojení mezi snímačem a fotonem částic. Zajištění správného připojení je základní nutností při práci na jakémkoli systému pro požadovaný výstup. Požadovaná připojení jsou tedy následující:

HMC5883 bude fungovat přes I2C. Zde je příklad schématu zapojení, které ukazuje, jak zapojit jednotlivá rozhraní senzoru.

Po vybalení je deska nakonfigurována pro rozhraní I2C, proto doporučujeme tuto přípojku použít, pokud jste jinak agnostik. Vše, co potřebujete, jsou čtyři dráty!

Jsou vyžadována pouze čtyři připojení Vcc, Gnd, SCL a SDA piny a ty jsou spojeny pomocí kabelu I2C.

Tato spojení jsou ukázána na obrázcích výše.

Krok 3: Kód pro měření intenzity magnetického pole:

Kód pro měření intenzity magnetického pole
Kód pro měření intenzity magnetického pole

Začněme nyní kódem částic.

Při používání senzorového modulu s Arduinem jsme zahrnuli knihovnu application.h a spark_wiring_i2c.h. Knihovna „application.h“a spark_wiring_i2c.h obsahuje funkce, které usnadňují komunikaci i2c mezi senzorem a částicem.

Celý kód částic je pro pohodlí uživatele uveden níže:

#zahrnout

#zahrnout

// Adresa I2C HMC5883 je 0x1E (30)

#define Addr 0x1E

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

neplatné nastavení ()

{

// Nastavit proměnnou

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

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Inicializujte komunikaci I2C jako MASTER

Wire.begin ();

// Inicializace sériové komunikace, nastavení přenosové rychlosti = 9600

Serial.begin (9600);

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte konfigurovat registr A

Wire.write (0x00);

// Nastavení normální konfigurace měření, rychlost výstupu dat = 0,75 Hz

Wire.write (0x60);

// Zastavte přenos I2C

Wire.endTransmission ();

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte režim Registrovat

Wire.write (0x02);

// Nastavení kontinuálního měření

Wire.write (0x00);

// Zastavte přenos I2C

Wire.endTransmission ();

zpoždění (300);

}

prázdná smyčka ()

{

nepodepsaná int data [6];

// Spusťte přenos I2C

Wire.beginTransmission (Addr);

// Vyberte datový registr

Wire.write (0x03);

// Zastavte přenos I2C

Wire.endTransmission ();

// Vyžádejte si 6 bajtů dat

Wire.requestFrom (Addr, 6);

// Přečíst 6 bajtů dat

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

pokud (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 ();

}

zpoždění (300);

// Převod dat

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

if (xMag> 32767)

{

xMag -= 65536;

}

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

if (zMag> 32767)

{

zMag -= 65536;

}

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

if (yMag> 32767)

{

yMag -= 65536;

}

// Výstup dat na řídicí panel

Particle.publish („Magnetické pole v ose X:“, řetězec (xMag));

zpoždění (1000);

Particle.publish („Magnetické pole v ose Y:“, řetězec (yMag));

zpoždění (1000);

Particle.publish ("Magnetické pole v ose Z:", řetězec (zMag));

zpoždění (1000);

}

Funkce Particle.variable () vytváří proměnné pro uložení výstupu senzoru a funkce Particle.publish () zobrazuje výstup na palubní desce webu.

Výstup snímače je uveden na obrázku výše pro vaši referenci.

Krok 4: Aplikace:

Aplikace
Aplikace

HMC5883 je vícečipový modul pro povrchovou montáž navržený pro magnetické snímání s nízkým polem s digitálním rozhraním pro aplikace, jako je levný kompas a magnetometrie. Jeho přesnost a přesnost jeden až dva stupně umožňuje pěší navigaci a aplikace LBS.

Doporučuje: