Kazalo:

Arduino Nano-MMA8452Q 3-osni 12-bitni/8-bitni digitalni merilnik pospeška: 4 koraki
Arduino Nano-MMA8452Q 3-osni 12-bitni/8-bitni digitalni merilnik pospeška: 4 koraki

Video: Arduino Nano-MMA8452Q 3-osni 12-bitni/8-bitni digitalni merilnik pospeška: 4 koraki

Video: Arduino Nano-MMA8452Q 3-osni 12-bitni/8-bitni digitalni merilnik pospeška: 4 koraki
Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial 2024, Julij
Anonim
Image
Image

MMA8452Q je pameten, triosni, kapacitivni, mikroobdelovalni merilnik pospeška z nizko porabo energije z ločljivostjo 12 bitov. Prilagodljive možnosti, ki jih lahko programira uporabnik, so na voljo s pomočjo vgrajenih funkcij v merilniku pospeška, ki jih je mogoče konfigurirati na dva prekinitvena zatiča. Ima polne lestvice, ki jih lahko izbere uporabnik ± 2 g/± 4 g/± 8 g, z visokofrekvenčnimi filtriranimi podatki in nefiltriranimi podatki, ki so na voljo v realnem času. Tukaj je njegova predstavitev z Arduino nano.

Korak: Kaj potrebujete.. !

Kaj rabiš..!!
Kaj rabiš..!!

1. Arduino Nano

2. MMA8452Q

3. Kabel I²C

4. I²C ščit za Arduino Nano

2. korak: Povezava:

Povezava
Povezava
Povezava
Povezava
Povezava
Povezava
Povezava
Povezava

Vzemite ščit I2C za Arduino Nano in ga nežno potisnite čez zatiče Nano.

Nato en konec kabla I2C priključite na senzor MMA8452Q, drugi konec pa na ščit I2C.

Povezave so prikazane na zgornji sliki.

3. korak: Koda:

Koda
Koda

Kodo arduino za MMMA8452Q lahko prenesete iz našega skladišča github- DCUBE Store.

Tukaj je povezava.

Vključujemo knjižnico Wire.h za olajšanje komunikacije senzorja I2c s ploščo Arduino.

Kodo lahko tudi kopirate od tu, podana je na naslednji način:

// Razdeljeno z licenco za svobodno voljo.

// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.

// MMA8452Q

// Ta koda je zasnovana za delo z mini modulom MMA8452Q_I2CS I2C.

#vključi

// Naslov MMA8452Q I2C je 0x1C (28)

#define Addr 0x1C

void setup ()

{

// Inicializirajte komunikacijo I2C kot MASTER

Wire.begin ();

// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600

Serial.begin (9600);

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite kontrolni register

Wire.write (0x2A);

// Stanje pripravljenosti

Wire.write (0x00);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite kontrolni register

Wire.write (0x2A);

// Aktivni način

Wire.write (0x01);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite kontrolni register

Wire.write (0x0E);

// Nastavite obseg na +/- 2g

Wire.write (0x00);

// Ustavi prenos I2C

Wire.endTransmission ();

zamuda (300);

}

void loop ()

{

podpisani int podatki [7];

// Zahtevajte 7 bajtov podatkov

Wire.requestFrom (Addr, 7);

// Preberite 7 bajtov podatkov

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

če (Wire.available () == 7)

{

podatki [0] = Wire.read ();

podatki [1] = Wire.read ();

podatki [2] = Wire.read ();

podatki [3] = Wire.read ();

podatki [4] = Wire.read ();

podatki [5] = Wire.read ();

podatki [6] = Wire.read ();

}

// Pretvorimo podatke v 12-bitne

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

če (xAccl> 2047)

{

xAccl -= 4096;

}

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

če (yAccl> 2047)

{

yAccl -= 4096;

}

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

če (zAccl> 2047)

{

zAccl -= 4096;

}

// Izhodni podatki na serijski monitor

Serial.print ("Pospešek v osi X:");

Serial.println (xAccl);

Serial.print ("Pospešek v osi Y:");

Serial.println (yAccl);

Serial.print ("Pospešek v osi Z:");

Serial.println (zAccl);

zamuda (500);

}

4. korak: Aplikacije:

MMA8452Q ima različne aplikacije, ki vključujejo aplikacije za e-kompas, zaznavanje statične orientacije, ki vključujejo pokončno/ležeče, gor/dol, levo/desno, identifikacijo položaja zadaj/spredaj, prenosni računalnik, e-bralnik ter zaznavanje padca in prenosnika prenosnega računalnika v realnem času odkrivanje orientacije, vključno z navidezno resničnostjo in povratnimi informacijami o položaju uporabnika v igrah 3D, analizo aktivnosti v realnem času, kot je štetje korakov pedometra, zaznavanje padcev prostega padca za trdi disk, varnostno kopiranje GPS-a in še veliko več.

Priporočena: