Isi kandungan:

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

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

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

MMA8452Q adalah akselerometer pintar, daya rendah, tiga paksi, kapasitif, micromachined dengan resolusi 12 bit. Pilihan yang dapat diprogramkan oleh pengguna yang fleksibel disediakan dengan bantuan fungsi tertanam di akselerometer, yang dapat dikonfigurasi untuk dua pin gangguan. Ia mempunyai skala penuh yang dapat dipilih pengguna ± 2g / ± 4g / ± 8g dengan data saringan lulus tinggi serta data yang tidak ditapis yang tersedia dalam masa nyata. Inilah demonstrasinya dengan Arduino nano.

Langkah 1: Apa yang Anda Perlu..

Apa yang kamu perlu..!!
Apa yang kamu perlu..!!

1. Arduino Nano

2. MMA8452Q

3. Kabel I²C

4. Perisai I²C untuk Arduino Nano

Langkah 2: Sambungan:

Sambungan
Sambungan
Sambungan
Sambungan
Sambungan
Sambungan
Sambungan
Sambungan

Ambil pelindung I2C untuk Arduino Nano dan perlahan-lahan menolaknya ke atas pin Nano.

Kemudian sambungkan satu hujung kabel I2C ke sensor MMA8452Q dan hujung yang lain ke pelindung I2C.

Sambungan ditunjukkan dalam gambar di atas.

Langkah 3: Kod:

Kod
Kod

Kod arduino untuk MMMA8452Q boleh dimuat turun dari github repositori kami - DCUBE Store.

Inilah pautannya.

Kami menyertakan perpustakaan Wire.h untuk memudahkan komunikasi sensor I2c dengan papan Arduino.

Anda juga boleh menyalin kod dari sini, ia diberikan seperti berikut:

// Diagihkan dengan lesen kehendak bebas.

// Gunakan dengan cara yang anda mahukan, untung atau percuma, dengan syarat ia sesuai dengan lesen karya yang berkaitan.

// MMA8452Q

// Kod ini direka untuk berfungsi dengan Modul Mini MMA8452Q_I2CS I2C.

#sertakan

// Alamat MMA8452Q I2C ialah 0x1C (28)

#tentukan Addr 0x1C

persediaan tidak sah ()

{

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Inisialisasi Serial Communication, tetapkan baud rate = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar kawalan

Wire.write (0x2A);

// Mod bersedia

Wire.write (0x00);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar kawalan

Wire.write (0x2A);

// Mod aktif

Wire.write (0x01);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar kawalan

Wire.write (0x0E);

// Tetapkan julat hingga +/- 2g

Wire.write (0x00);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (300);

}

gelung kosong ()

{

data int yang tidak ditandatangani [7];

// Minta 7 bait data

Wire.requestFrom (Addr, 7);

// Baca 7 bait data

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

jika (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 ();

}

// Tukarkan data menjadi 12-bit

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

jika (xAccl> 2047)

{

xAccl - = 4096;

}

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

jika (yAccl> 2047)

{

yAccl - = 4096;

}

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

jika (zAccl> 2047)

{

zAccl - = 4096;

}

// Keluarkan data ke monitor bersiri

Serial.print ("Pecutan dalam X-Axis:");

Serial.println (xAccl);

Serial.print ("Pecutan dalam Y-Axis:");

Serial.println (yAccl);

Serial.print ("Pecutan dalam Z-Axis:");

Serial.println (zAccl);

kelewatan (500);

}

Langkah 4: Aplikasi:

MMA8452Q mempunyai pelbagai aplikasi yang merangkumi aplikasi E-Compass, pengesanan orientasi Statik yang menggabungkan Potret / Landskap, Atas / Bawah, Kiri / Kanan, Pengenalan posisi Belakang / Depan, Notebook, e-reader, dan Laptop Tumble and Freefall Detection, Real-time pengesanan orientasi termasuk realiti maya dan maklum balas kedudukan pengguna permainan 3D, analisis aktiviti Masa nyata seperti pengiraan langkah pedometer, pengesanan penurunan jatuh untuk HDD, sandaran GPS yang dikira mati dan banyak lagi.

Disyorkan: