Tartalomjegyzék:

Arduino Nano-MMA8452Q 3 tengelyes 12 bites/8 bites digitális gyorsulásmérő oktatóanyag: 4 lépés
Arduino Nano-MMA8452Q 3 tengelyes 12 bites/8 bites digitális gyorsulásmérő oktatóanyag: 4 lépés

Videó: Arduino Nano-MMA8452Q 3 tengelyes 12 bites/8 bites digitális gyorsulásmérő oktatóanyag: 4 lépés

Videó: Arduino Nano-MMA8452Q 3 tengelyes 12 bites/8 bites digitális gyorsulásmérő oktatóanyag: 4 lépés
Videó: Az Arduino és a PWM 2024, Július
Anonim
Image
Image

Az MMA8452Q egy intelligens, kis teljesítményű, három tengelyes, kapacitív, mikromotoros gyorsulásmérő, 12 bit felbontással. Rugalmas, felhasználó által programozható lehetőségek állnak rendelkezésre a gyorsulásmérő beágyazott funkciói segítségével, amelyek két megszakító csaphoz konfigurálhatók. A felhasználó által választható teljes skálák ± 2 g/± 4 g/± 8 g, felüláteresztő szűrőkkel, valamint valós időben elérhető nem szűrt adatokkal. Itt a bemutatója az Arduino nanóval.

1. lépés: Amire szüksége van..

Amire szükséged van..!!
Amire szükséged van..!!

1. Arduino Nano

2. MMA8452Q

3. I²C kábel

4. I²C pajzs az Arduino Nano számára

2. lépés: Csatlakozás:

Kapcsolat
Kapcsolat
Kapcsolat
Kapcsolat
Kapcsolat
Kapcsolat
Kapcsolat
Kapcsolat

Vegyünk egy I2C pajzsot az Arduino Nano számára, és óvatosan toljuk át a Nano csapjaira.

Ezután csatlakoztassa az I2C kábel egyik végét az MMA8452Q érzékelőhöz, a másik végét pedig az I2C árnyékoláshoz.

A csatlakozásokat a fenti kép mutatja.

3. lépés: Kód:

Kód
Kód

Az MMMA8452Q arduino kódja letölthető a github tárhelyünkről- DCUBE Store.

Itt a link.

Tartalmazzuk a Wire.h könyvtárat, hogy megkönnyítsük az érzékelő I2c kommunikációját az Arduino táblával.

Innen is másolhatja a kódot, ez a következőképpen van megadva:

// Szabad akaratú licenccel terjesztik.

// Bármilyen módon használhatja, haszonnal vagy ingyen, feltéve, hogy illeszkedik a kapcsolódó művek licenceihez.

// MMA8452Q

// Ez a kód az MMA8452Q_I2CS I2C Mini modullal való együttműködésre készült.

#befoglalni

// Az MMA8452Q I2C címe 0x1C (28)

#define Addr 0x1C

ü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);

// Vezérlőregiszter kiválasztása

Wire.write (0x2A);

// Készenléti mód

Wire.write (0x00);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Vezérlőregiszter kiválasztása

Wire.write (0x2A);

// Aktív mód

Wire.write (0x01);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Vezérlőregiszter kiválasztása

Wire.write (0x0E);

// A tartomány beállítása +/- 2g

Wire.write (0x00);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

késleltetés (300);

}

üres hurok ()

{

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

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

Wire.requestFrom (Addr, 7);

// 7 bájt adat olvasása

// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

ha (Wire.available () == 7)

{

adatok [0] = Wire.read ();

adatok [1] = Wire.read ();

adatok [2] = Wire.read ();

adatok [3] = Wire.read ();

adatok [4] = Wire.read ();

adatok [5] = Wire.read ();

adatok [6] = Wire.read ();

}

// Az adatok konvertálása 12 bitesre

int xAccl = ((adatok [1] * 256) + adatok [2]) / 16;

ha (xAccl> 2047)

{

xAccl -= 4096;

}

int yAccl = ((adatok [3] * 256) + adatok [4]) / 16;

ha (yAccl> 2047)

{

yAccl -= 4096;

}

int zAccl = ((adatok [5] * 256) + adatok [6]) / 16;

ha (zAccl> 2047)

{

zAccl -= 4096;

}

// Adatok kimenete soros monitorra

Serial.print ("Gyorsulás az X-tengelyben:");

Sorozat.println (xAccl);

Serial.print ("Gyorsulás az Y tengelyen:");

Soros.println (yAccl);

Serial.print ("Gyorsulás Z-tengelyben:");

Soros.println (zAccl);

késleltetés (500);

}

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

Az MMA8452Q számos alkalmazással rendelkezik, beleértve az E-Iránytű alkalmazásokat, a Statikus tájolás érzékelést, amely magában foglalja a portré/tájképet, a fel/le, a bal/jobb, a hátsó/elülső pozíció azonosítását, a notebookot, az e-olvasót, valamint a laptop bukdácsolás és szabadesés érzékelését, valós idejű orientáció észlelés, beleértve a virtuális valóságot és a játék 3D felhasználói pozíció visszajelzését, valós idejű tevékenységelemzés, mint például lépésszámláló lépésszámlálása, szabadon eséses érzékelés a HDD-hez, holt-számláló GPS-mentés és még sok más.

Ajánlott: