Cuprins:

Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: 4 pași
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: 4 pași

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: 4 pași

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Accelerometru digital Tutorial: 4 pași
Video: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, Noiembrie
Anonim
Image
Image

MMA8452Q este un accelerometru inteligent, de mică putere, cu trei axe, capacitiv, micromachined, cu 12 biți de rezoluție. Opțiunile flexibile programabile de utilizator sunt furnizate cu ajutorul funcțiilor încorporate în accelerometru, configurabile pentru doi pini de întrerupere. Are scări complete selectabile de utilizator de ± 2g / ± 4g / ± 8g cu date filtrate cu filtru trecător înalt, precum și date non-filtrate disponibile în timp real. Iată demonstrația sa cu Arduino nano.

Pasul 1: De ce ai nevoie..

De ce ai nevoie..!!
De ce ai nevoie..!!

1. Arduino Nano

2. MMA8452Q

3. Cablu I²C

4. Scut I²C pentru Arduino Nano

Pasul 2: Conexiune:

Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune

Luați un scut I2C pentru Arduino Nano și împingeți-l ușor peste pinii Nano.

Apoi conectați capătul cablului I2C la senzorul MMA8452Q și celălalt capăt la ecranul I2C.

Conexiunile sunt afișate în imaginea de mai sus.

Pasul 3: Cod:

Cod
Cod

Codul arduino pentru MMMA8452Q poate fi descărcat din depozitul nostru github- Magazin DCUBE.

Iată linkul.

Includem biblioteca Wire.h pentru a facilita comunicarea I2c a senzorului cu placa Arduino.

De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:

// Distribuit cu o licență de liberă voință.

// Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.

// MMA8452Q

// Acest cod este conceput pentru a funcționa cu Mini-modulul MMA8452Q_I2CS I2C.

#include

// Adresa MMA8452Q I2C este 0x1C (28)

#define Addr 0x1C

configurare nulă ()

{

// Inițializați comunicarea I2C ca MASTER

Wire.begin ();

// Inițializați comunicarea în serie, setați baud rate = 9600

Serial.begin (9600);

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Selectați registrul de control

Wire.write (0x2A);

// Mod de asteptare

Wire.write (0x00);

// Opriți transmisia I2C

Wire.endTransmission ();

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Selectați registrul de control

Wire.write (0x2A);

// Mod activ

Wire.write (0x01);

// Opriți transmisia I2C

Wire.endTransmission ();

// Porniți transmisia I2C

Wire.beginTransmission (Addr);

// Selectați registrul de control

Wire.write (0x0E);

// Setați intervalul la +/- 2g

Wire.write (0x00);

// Opriți transmisia I2C

Wire.endTransmission ();

întârziere (300);

}

bucla nulă ()

{

date int nesemnate [7];

// Solicitați 7 octeți de date

Wire.requestFrom (Addr, 7);

// Citiți 7 octeți de date

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

if (Wire.available () == 7)

{

date [0] = Wire.read ();

date [1] = Wire.read ();

date [2] = Wire.read ();

date [3] = Wire.read ();

date [4] = Wire.read ();

date [5] = Wire.read ();

date [6] = Wire.read ();

}

// Convertiți datele în 12 biți

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

if (xAccl> 2047)

{

xAccl - = 4096;

}

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

if (yAccl> 2047)

{

yAccl - = 4096;

}

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

if (zAccl> 2047)

{

zAccl - = 4096;

}

// Ieșire date pe monitorul serial

Serial.print ("Accelerare în axa X:");

Serial.println (xAccl);

Serial.print ("Accelerare în axa Y:");

Serial.println (yAccl);

Serial.print ("Accelerare în axa Z:");

Serial.println (zAccl);

întârziere (500);

}

Pasul 4: Aplicații:

MMA8452Q are diverse aplicații care includ aplicații E-Compass, detecție statică a orientării care încorporează portret / peisaj, sus / jos, stânga / dreapta, identificare poziție spate / față, notebook, e-reader și detectare de cadere și cădere liberă pentru laptop, în timp real detectarea orientării, inclusiv realitatea virtuală și feedback-ul poziției utilizatorului 3D pentru jocuri, analiza activității în timp real, cum ar fi contorizarea pasului pedometrului, detectarea căderilor gratuite pentru HDD, backup GPS calculat și multe altele.

Recomandat: