Tartalomjegyzék:

A gyorsulás mérése H3LIS331DL és Arduino Nano használatával: 4 lépés
A gyorsulás mérése H3LIS331DL és Arduino Nano használatával: 4 lépés

Videó: A gyorsulás mérése H3LIS331DL és Arduino Nano használatával: 4 lépés

Videó: A gyorsulás mérése H3LIS331DL és Arduino Nano használatával: 4 lépés
Videó: How to use Allegro ACS712 AC/DC Current Sensor with Arduino 2024, Július
Anonim
Image
Image

A H3LIS331DL egy kis teljesítményű, nagy teljesítményű, 3 tengelyes lineáris gyorsulásmérő, amely a „nano” családba tartozik, digitális I²C soros interfésszel. A H3LIS331DL ± 100 g/± 200 g/± 400 g felhasználó által választható teljes skálával rendelkezik, és képes 0,5 Hz és 1 kHz kimeneti adatátviteli sebességű gyorsulások mérésére. A H3LIS331DL garantáltan -40 ° C és +85 ° C közötti kiterjesztett hőmérséklettartományban működik.

Ebben az oktatóanyagban bemutatjuk a H3LIS331DL és az Arduino Nano interfészé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. H3LIS331DL

2. Arduino Nano

3. I2C kábel

4. I2C pajzs az Arduino Nano számára

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 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 H3LIS331DL 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 gyorsulásméréshez:

Arduino kód a gyorsulásméréshez
Arduino kód a gyorsulásméréshez
Arduino kód a gyorsulásméréshez
Arduino kód a gyorsulásméréshez

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

// H3LIS331DL I2C cím 0x18 (24)

#define Addr 0x18

ü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 1

Wire.write (0x20);

// Engedélyezze az X, Y, Z tengelyt, bekapcsolási módot, 50Hz adatkimeneti sebességet

Wire.write (0x27);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a vezérlőregisztert 4

Wire.write (0x23);

// Teljes skála beállítása, +/- 100 g, folyamatos frissítés

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];

for (int i = 0; i <6; i ++)

{

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Adatregiszter kiválasztása

Wire.write ((40+i));

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

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

Wire.requestFrom (Addr, 1);

// 6 bájt adat olvasása

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

ha (Wire.available () == 1)

{

adatok = Wire.read ();

}

}

késleltetés (300);

// Konvertálja az adatokat

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

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

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

// 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 (300);

}

Mindössze annyit kell tennie, hogy elégeti a kódot arduino -ban, és ellenőrzi a leolvasott értékeket a soros porton. A kimenet a fenti képen látható.

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

Alkalmazások
Alkalmazások

Az olyan gyorsulásmérők, mint a H3LIS331DL, leginkább a játékokban és a megjelenítési profilváltásban találhatók. Ez az érzékelő modul a mobil alkalmazások fejlett energiagazdálkodási rendszerében is használatos. A H3LIS331DL egy háromtengelyes digitális gyorsulásérzékelő, amely intelligens chipen belüli mozgás által kiváltott megszakításvezérlővel van felszerelve.

Ajánlott: