Sadržaj:

Arduino Nano-MMA8452Q 3-osi 12-bitni/8-bitni digitalni akcelerometar Vodič: 4 koraka
Arduino Nano-MMA8452Q 3-osi 12-bitni/8-bitni digitalni akcelerometar Vodič: 4 koraka

Video: Arduino Nano-MMA8452Q 3-osi 12-bitni/8-bitni digitalni akcelerometar Vodič: 4 koraka

Video: Arduino Nano-MMA8452Q 3-osi 12-bitni/8-bitni digitalni akcelerometar Vodič: 4 koraka
Video: Как использовать гироскоп, акселерометр, магнитометр MPU-9250 для Arduino 2024, Srpanj
Anonim
Image
Image

MMA8452Q je pametan, troosni, kapacitivni, mikroobrinuti akcelerometar male snage s 12 bita rezolucije. Fleksibilne korisnički programirane opcije omogućene su uz pomoć ugrađenih funkcija u mjeraču ubrzanja, koje se mogu konfigurirati na dva pina prekida. Ima korisničke skale od ± 2 g/± 4 g/± 8 g koje korisnik može odabrati s podacima filtriranim visokopropusnim filtrom, kao i nefiltriranim podacima dostupnim u stvarnom vremenu. Evo njegove demonstracije s Arduino nano.

Korak 1: Što vam treba..

Što trebaš..!!
Što trebaš..!!

1. Arduino Nano

2. MMA8452Q

3. I²C kabel

4. I²C štit za Arduino Nano

Korak 2: Povezivanje:

Priključak
Priključak
Priključak
Priključak
Priključak
Priključak
Priključak
Priključak

Uzmite I2C štit za Arduino Nano i lagano ga gurnite preko igle Nano.

Zatim spojite jedan kraj I2C kabela na senzor MMA8452Q, a drugi kraj na I2C štit.

Priključci su prikazani na gornjoj slici.

Korak 3: Kôd:

Kodirati
Kodirati

Arduino kôd za MMMA8452Q može se preuzeti s našeg github spremišta- DCUBE Store.

Evo linka.

Uključujemo knjižnicu Wire.h kako bismo olakšali I2c komunikaciju senzora s Arduino pločom.

Ovdje možete i kopirati kôd, dat je na sljedeći način:

// Distribuirano s licencom slobodne volje.

// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.

// MMA8452Q

// Ovaj kôd je dizajniran za rad s MMA8452Q_I2CS I2C mini modulom.

#uključi

// MMA8452Q I2C adresa je 0x1C (28)

#define Adr 0x1C

void setup ()

{

// Inicializirajte I2C komunikaciju kao MASTER

Wire.begin ();

// Pokretanje serijske komunikacije, postavljena brzina prijenosa = 9600

Serial.begin (9600);

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odaberite kontrolni registar

Wire.write (0x2A);

// StandBy način

Wire.write (0x00);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odaberite kontrolni registar

Wire.write (0x2A);

// Aktivni način rada

Wire.write (0x01);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odaberite kontrolni registar

Wire.write (0x0E);

// Postavite raspon na +/- 2g

Wire.write (0x00);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

kašnjenje (300);

}

void loop ()

{

nepotpisani int podaci [7];

// Zatražite 7 bajta podataka

Wire.requestFrom (Addr, 7);

// Očitavanje 7 bajtova podataka

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

if (Wire.available () == 7)

{

podaci [0] = Wire.read ();

podaci [1] = Wire.read ();

podaci [2] = Wire.read ();

podaci [3] = Wire.read ();

podaci [4] = Wire.read ();

podaci [5] = Wire.read ();

podaci [6] = Wire.read ();

}

// Pretvorimo podatke u 12-bitne

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

ako (xAccl> 2047)

{

xAccl -= 4096;

}

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

ako (yAccl> 2047)

{

yAccl -= 4096;

}

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

ako (zAccl> 2047)

{

zAccl -= 4096;

}

// Izlaženje podataka na serijski monitor

Serial.print ("Ubrzanje u osi X:");

Serijski.println (xAccl);

Serial.print ("Ubrzanje u osi Y:");

Serial.println (yAccl);

Serial.print ("Ubrzanje u osi Z:");

Serijski.println (zAccl);

kašnjenje (500);

}

Korak 4: Aplikacije:

MMA8452Q ima različite aplikacije koje uključuju aplikacije za e-kompas, detekciju statičke orijentacije koja uključuje portret/pejzaž, gore/dolje, lijevo/desno, natrag/sprijeda identifikaciju položaja, prijenosno računalo, e-čitač i otkrivanje padova i laptopa u stvarnom vremenu otkrivanje orijentacije, uključujući virtualnu stvarnost i povratne informacije o položaju korisnika 3D igre, analizu aktivnosti u stvarnom vremenu, poput brojanja koraka koraka, detekciju slobodnog pada za HDD, sigurnosno kopiranje GPS-a i još mnogo toga.

Preporučeni: