Tartalomjegyzék:

Mágneses mező mérése HMC5883 és részecskefoton segítségével: 4 lépés
Mágneses mező mérése HMC5883 és részecskefoton segítségével: 4 lépés

Videó: Mágneses mező mérése HMC5883 és részecskefoton segítségével: 4 lépés

Videó: Mágneses mező mérése HMC5883 és részecskefoton segítségével: 4 lépés
Videó: Томас Кэмпбелл: Эго, паранормальные пси, мой большой палец на ноге 2024, Július
Anonim
Image
Image

A HMC5883 egy digitális iránytű, amelyet alacsony mezőű mágneses érzékelésre terveztek. Ennek a készüléknek a széles mágneses tartománya +/- 8 Oe, és a kimeneti sebessége 160 Hz. A HMC5883 érzékelő automatikus gáztalanító heveder meghajtókat, eltolás törlést és 12 bites ADC-t tartalmaz, amely lehetővé teszi az iránytű irányának 1 ° és 2 ° közötti pontosságát. Minden I²C mini modult 5VDC feszültségre való működésre terveztek.

Ebben az oktatóanyagban elmagyarázzuk a HMC5883 részecskefotonnal való részletes működését. A részecske -foton egy olyan tábla, amely megkönnyíti az adatok küldését és fogadását a webhelyről, és amely támogatja az Internet Of Things (IoT) legalapvetőbb jellemzőjét.

1. lépés: Szükséges hardver:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. HMC5883

2. Foton részecske

3. I2C kábel

4. I2C pajzs részecske fotonhoz

2. lépés: Hardver csatlakoztatása:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása

A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a részecskefoton között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:

A HMC5883 az I2C -n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.

A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus. Csak négy vezetékre van szüksége!

Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.

Ezeket az összefüggéseket a fenti képek mutatják be.

3. lépés: A mágneses mező intenzitásának mérésére szolgáló kód:

A mágneses mező intenzitásának mérésére szolgáló kód
A mágneses mező intenzitásának mérésére szolgáló kód

Kezdjük most a részecske kóddal.

Miközben az érzékelő modult használja az Arduino -val, az application.h és a spark_wiring_i2c.h könyvtárat is tartalmazza. Az "application.h" és a spark_wiring_i2c.h könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és a részecske között.

A teljes szemcsekódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:

#befoglalni

#befoglalni

// A HMC5883 I2C címe 0x1E (30)

#define Addr 0x1E

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

üres beállítás ()

{

// Változó beállítása

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

Particle.variable ("xMag", xMag);

Particle.variable ("yMag", yMag);

Particle.variable ("zMag", zMag);

// Inicializálja az I2C kommunikációt MASTER -ként

Wire.begin ();

// Inicializálja a soros kommunikációt, állítsa be az átviteli sebességet = 9600

Sorozat.kezdet (9600);

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki az A regiszter konfigurálása lehetőséget

Wire.write (0x00);

// Állítsa be a normál mérési konfigurációt, az adatkimeneti sebesség = 0,75 Hz

Wire.write (0x60);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a Mode regisztert

Wire.write (0x02);

// Folyamatos mérés beállítása

Wire.write (0x00);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

késleltetés (300);

}

üres hurok ()

{

előjel nélküli int adatok [6];

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Adatregiszter kiválasztása

Wire.write (0x03);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// 6 bájt adat kérése

Wire.requestFrom (Addr, 6);

// 6 bájt adat olvasása

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

ha (Wire.available () == 6)

{

adatok [0] = Wire.read ();

adatok [1] = Wire.read ();

adatok [2] = Wire.read ();

adatok [3] = Wire.read ();

adatok [4] = Wire.read ();

adatok [5] = Wire.read ();

}

késleltetés (300);

// Konvertálja az adatokat

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

ha (xMag> 32767)

{

xMag -= 65536;

}

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

ha (zMag> 32767)

{

zMag -= 65536;

}

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

ha (yMag> 32767)

{

yMag -= 65536;

}

// Adatok kimenete a műszerfalra

Particle.publish ("Mágneses mező az X-tengelyen:", String (xMag));

késleltetés (1000);

Particle.publish ("Mágneses mező az Y tengelyen:", String (yMag));

késleltetés (1000);

Particle.publish ("Mágneses mező Z-tengelyben:", String (zMag));

késleltetés (1000);

}

A Particle.variable () függvény létrehozza a változókat az érzékelő kimenetének tárolására, a Particle.publish () függvény pedig megjeleníti a kimenetet a webhely műszerfalán.

Az érzékelő kimenete a fenti képen látható.

4. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

A HMC5883 egy felületre szerelhető, többcsipes modul, amely alacsony mezőű mágneses érzékelésre készült, digitális interfésszel, olyan alkalmazásokhoz, mint az alacsony költségű iránytű és a magnetometria. Egy -két fokos magas szintű pontossága és pontossága lehetővé teszi a gyalogos navigációt és az LBS alkalmazásokat.

Ajánlott: