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, Juli
Anonim
Image
Image

MMA8452Q je pametan, troosni, troosni, kapacitivni, mikromašinski ubrzani mjerač male snage s 12 bita rezolucije. Fleksibilne korisnički programirane opcije pružaju se uz pomoć ugrađenih funkcija u mjeraču ubrzanja, koje se mogu konfigurirati na dva pina prekida. Ima pune skale koje korisnik može odabrati od ± 2g/± 4g/± 8g sa visokofrekventnim filtriranim podacima, kao i nefiltriranim podacima dostupnim u stvarnom vremenu. Evo njegove demonstracije s Arduino nano.

Korak 1: Šta vam treba..

Sta ti treba..!!
Sta ti treba..!!

1. Arduino Nano

2. MMA8452Q

3. I²C kabel

4. I²C štit za Arduino Nano

Korak 2: Povezivanje:

Veza
Veza
Veza
Veza
Veza
Veza
Veza
Veza

Uzmite I2C štit za Arduino Nano i lagano ga gurnite preko igala Nano -a.

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

Veze su prikazane na gornjoj slici.

Korak 3: Kod:

Šifra
Šifra

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.

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

// Distribuirano s licencom za slobodnu volju.

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

// MMA8452Q

// Ovaj kod je dizajniran za rad s MMA8452Q_I2CS I2C mini modulom.

#include

// MMA8452Q I2C adresa je 0x1C (28)

#define Addr 0x1C

void setup ()

{

// Inicializirajte I2C komunikaciju kao MASTER

Wire.begin ();

// Pokrećemo serijsku komunikaciju, postavljena brzina prijenosa = 9600

Serial.begin (9600);

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odabir kontrolnog registra

Wire.write (0x2A);

// StandBy način

Wire.write (0x00);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odabir kontrolnog registra

Wire.write (0x2A);

// Aktivni način rada

Wire.write (0x01);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

// Pokretanje I2C prijenosa

Wire.beginTransmission (Addr);

// Odabir kontrolnog registra

Wire.write (0x0E);

// Podesite raspon na +/- 2g

Wire.write (0x00);

// Zaustavljanje I2C prijenosa

Wire.endTransmission ();

kašnjenje (300);

}

void loop ()

{

nepotpisani int podaci [7];

// Zatražite 7 bajtova 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;

}

// Izlaz podataka na serijski monitor

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

Serial.println (xAccl);

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

Serial.println (yAccl);

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

Serial.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 3D poziciji korisnika u igri, analizu aktivnosti u stvarnom vremenu, poput brojanja koraka pedometra, detekciju slobodnih padova za HDD, sigurnosno kopiranje GPS-a i još mnogo toga.

Preporučuje se: