Tartalomjegyzék:
- 1. lépés: Szükséges hardver:
- 2. lépés: Hardver csatlakoztatása:
- 3. lépés: Arduino kód a mágneses mező intenzitásának mérésére:
- 4. lépés: Alkalmazások:
Videó: Mágneses mező mérése HMC5883 és Arduino Nano használatával: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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észletes működését az Arduino nanóval.
1. lépés: Szükséges hardver:
A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:
1. HMC5883
2. Arduino Nano
3. I2C kábel
4. I2C pajzs Arduino Nano számára
2. lépés: Hardver csatlakoztatása:
A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és az arduino nano 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: Arduino kód a mágneses mező intenzitásának mérésére:
Kezdjük most az Arduino kóddal.
Miközben az érzékelő modult használja az Arduino -val, a Wire.h könyvtárat is tartalmazza. A "Wire" könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és az Arduino kártya között.
A teljes Arduino kódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:
#befoglalni
// A HMC5883 I2C címe 0x1E (30)
#define Addr 0x1E
üres beállítás ()
{
// 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
int xMag = ((adatok [0] * 256) + adatok [1]);
int zMag = ((adatok [2] * 256) + adatok [3]);
int yMag = ((adatok [4] * 256) + adatok [5]);
// Adatok kimenete soros monitorra
Serial.print ("Mágneses mező az X-tengelyen:");
Soros.println (xMag);
Serial.print ("Mágneses mező az Y tengelyen:");
Soros.println (yMag);
Serial.print ("Mágneses mező Z-tengelyben:");
Soros.println (zMag);
késleltetés (300);
}
A vezetékes könyvtárban a Wire.write () és a Wire.read () parancsokat írják és olvassák le az érzékelő kimenetét. A kód következő része az érzékelő kimenetének leolvasását szemlélteti.
// 6 bájt adat olvasása // xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb if (Wire.available () == 6) {data [0] = Wire.read (); adatok [1] = Wire.read (); adatok [2] = Wire.read (); adatok [3] = Wire.read (); adatok [4] = Wire.read (); adatok [5] = Wire.read (); }
A Serial.print () és a Serial.println () az érzékelő kimenetének megjelenítésére szolgál az Arduino IDE soros monitorán.
Az érzékelő kimenete a fenti képen látható.
4. lépés: 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:
Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 4 lépés
Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 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ő magában foglalja az automatikus kivezető heveder meghajtókat, az eltolás törlését és egy
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: A HMC5883 egy digitális iránytű, amelyet alacsony mezőű mágneses érzékelésre terveztek. Ennek az eszköznek a mágneses mező széles tartománya +/- 8 Oe, és a kimeneti sebessége 160 Hz. A HMC5883 érzékelő magában foglalja az automatikus kivezető heveder meghajtókat, az eltolás törlését és egy
A gyorsulás mérése H3LIS331DL és Arduino Nano használatával: 4 lépés
A gyorsulás mérése a H3LIS331DL és az Arduino Nano használatával: A H3LIS331DL egy kis teljesítményű, nagyteljesítményű, 3 tengelyes lineáris gyorsulásmérő, amely a „nano” családba tartozik, digitális I²C soros interfésszel. A H3LIS331DL felhasználó által választható teljes skála ± 100 g/± 200 g/± 400 g, és képes gyorsulások mérésére
Hőmérséklet mérése ADT75 és Arduino Nano használatával: 4 lépés
Hőmérsékletmérés az ADT75 és az Arduino Nano segítségével: Az ADT75 egy rendkívül pontos, digitális hőmérséklet -érzékelő. Tartalmaz egy sávköz-hőmérséklet-érzékelőt és egy 12 bites analóg-digitális átalakítót a hőmérséklet figyelésére és digitalizálására. Rendkívül érzékeny érzékelője kellően hozzáértővé teszi számomra
3 tengelyes mágneses mező érzékelő: 10 lépés (képekkel)
3 tengelyes mágneses mező érzékelő: A vezeték nélküli erőátviteli rendszerek jó úton haladnak a hagyományos vezetékes töltés helyett. Az apró orvosbiológiai implantátumoktól egészen a hatalmas elektromos járművek vezeték nélküli újratöltéséig. A vezeték nélküli áramellátással kapcsolatos kutatás szerves része