Talaan ng mga Nilalaman:

Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 Mga Hakbang
Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 Mga Hakbang

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 Mga Hakbang

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Tutorial: 4 Mga Hakbang
Video: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, Hulyo
Anonim
Image
Image

Ang MMA8452Q ay isang matalino, mababang lakas, three-axis, capacitive, micromachined accelerometer na may 12 piraso ng resolusyon. Ang mga nababaluktot na pagpipilian na maaaring mai-program ng gumagamit ay ibinibigay sa tulong ng mga naka-embed na pag-andar sa accelerometer, mai-configure sa dalawang nakakagambala na mga pin. Mayroon itong mapipiling gumagamit na buong kaliskis na ± 2g / ± 4g / ± 8g na may high-pass filter na na-filter na data pati na rin ang hindi na-filter na data na magagamit na real-time. Narito ang pagpapakita nito kasama ang Arduino nano.

Hakbang 1: Ano ang Kailangan Mo.. !

Ang iyong kailangan..!!
Ang iyong kailangan..!!

1. Arduino Nano

2. MMA8452Q

3. I²C Cable

4. I²C Shield para sa Arduino Nano

Hakbang 2: Koneksyon:

Koneksyon
Koneksyon
Koneksyon
Koneksyon
Koneksyon
Koneksyon
Koneksyon
Koneksyon

Kumuha ng isang kalasag I2C para sa Arduino Nano at dahan-dahang itulak ito sa mga pin ng Nano.

Pagkatapos ikonekta ang isang dulo ng I2C cable sa MMA8452Q sensor at ang iba pang mga dulo sa I2C kalasag.

Ang mga koneksyon ay ipinapakita sa larawan sa itaas.

Hakbang 3: Code:

Code
Code

Ang arduino code para sa MMMA8452Q ay maaaring ma-download mula sa aming github repository- DCUBE Store.

Nandito ang link.

Isinasama namin ang library Wire.h upang mapabilis ang komunikasyon ng I2c ng sensor gamit ang Arduino board.

Maaari mo ring kopyahin ang code mula dito, ibinibigay ito tulad ng sumusunod:

// Ipinamamahagi ng isang lisensyang malaya ang kalooban.

// Gumamit nito sa anumang paraan na nais mo, kumita o libre, naibigay na umaangkop ito sa mga lisensya ng mga nauugnay na gawa nito.

// MMA8452Q

// Ang code na ito ay dinisenyo upang gumana sa MMA8452Q_I2CS I2C Mini Module.

# isama

// MMA8452Q I2C address ay 0x1C (28)

# tukuyin ang Addr 0x1C

walang bisa ang pag-setup ()

{

// Initialise I2C na komunikasyon bilang MASTER

Wire.begin ();

// Initialise Serial Communication, itakda ang baud rate = 9600

Serial.begin (9600);

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng kontrol

Wire.write (0x2A);

// StandBy mode

Wire.write (0x00);

// Stop I2C Transmission

Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng kontrol

Wire.write (0x2A);

// Aktibong mode

Wire.write (0x01);

// Stop I2C Transmission

Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng kontrol

Wire.write (0x0E);

// Itakda ang saklaw sa +/- 2g

Wire.write (0x00);

// Stop I2C Transmission

Wire.endTransmission ();

pagkaantala (300);

}

walang bisa loop ()

{

unsigned int data [7];

// Humiling ng 7 bytes ng data

Wire.requestFrom (Addr, 7);

// Basahin ang 7 bytes ng data

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

kung (Wire.available () == 7)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

data [6] = Wire.read ();

}

// I-convert ang data sa 12-bit

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

kung (xAccl> 2047)

{

xAccl - = 4096;

}

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

kung (yAccl> 2047)

{

yAccl - = 4096;

}

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

kung (zAccl> 2047)

{

zAccl - = 4096;

}

// Output data sa serial monitor

Serial.print ("Pagpapabilis sa X-Axis:");

Serial.println (xAccl);

Serial.print ("Pagpapabilis sa Y-Axis:");

Serial.println (yAccl);

Serial.print ("Pagpapabilis sa Z-Axis:");

Serial.println (zAccl);

pagkaantala (500);

}

Hakbang 4: Mga Aplikasyon:

Ang MMA8452Q ay may iba't ibang mga application na may kasamang mga application ng E-Compass, detalyadong orientation na pagtuklas na nagsasama ng Portrait / Landscape, Pataas / Pababa, Kaliwa / Kanan, Pagkakakilala sa posisyon ng Back / Front, Notebook, e-reader, at Pagtuklas ng Laptop Tumble at Freefall, Real-time ang pagtuklas ng oryentasyon kabilang ang virtual reality at gaming feedback ng posisyon ng gumagamit ng 3D, pagtatasa ng aktibidad sa real-time tulad ng pagbibilang ng hakbang ng pedometer, pagtuklas ng freefall drop para sa HDD, patay-reckoning backup ng GPS at marami pa.

Inirerekumendang: