Daftar Isi:

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

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

Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial: 4 Langkah
Video: Arduino Nano - MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Tutorial 2024, Juli
Anonim
Image
Image

MMA8452Q adalah akselerometer micromachined yang cerdas, berdaya rendah, tiga sumbu, kapasitif, dengan resolusi 12 bit. Opsi yang dapat diprogram pengguna yang fleksibel disediakan dengan bantuan fungsi tertanam di akselerometer, dapat dikonfigurasi untuk dua pin interupsi. Ini memiliki skala penuh yang dapat dipilih pengguna ±2g/±4g/±8g dengan data terfilter filter high-pass serta data non-filter yang tersedia secara real-time. Berikut adalah demonstrasinya dengan Arduino nano.

Langkah 1: Yang Anda Butuhkan.

Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!

1. Arduino Nano

2. MMA8452Q

3. Kabel I²C

4. Perisai I²C untuk Arduino Nano

Langkah 2: Koneksi:

Koneksi
Koneksi
Koneksi
Koneksi
Koneksi
Koneksi
Koneksi
Koneksi

Ambil pelindung I2C untuk Arduino Nano dan dorong perlahan ke pin Nano.

Kemudian sambungkan salah satu ujung kabel I2C ke sensor MMA8452Q dan ujung lainnya ke pelindung I2C.

Koneksi ditunjukkan pada gambar di atas.

Langkah 3: Kode:

Kode
Kode

Kode arduino untuk MMMA8452Q dapat diunduh dari repositori github kami- DCUBE Store.

Ini tautannya.

Kami menyertakan library Wire.h untuk memfasilitasi komunikasi I2c dari sensor dengan board Arduino.

Anda juga dapat menyalin kode dari sini, diberikan sebagai berikut:

// Didistribusikan dengan lisensi kehendak bebas.

// Gunakan sesuka Anda, untung atau gratis, asalkan sesuai dengan lisensi karya terkait.

// MMA8452Q

// Kode ini dirancang untuk bekerja dengan Modul Mini MMA8452Q_I2CS I2C.

#termasuk

// Alamat I2C MMA8452Q adalah 0x1C(28)

#define Addr 0x1C

batalkan pengaturan()

{

// Inisialisasi komunikasi I2C sebagai MASTER

Kawat.mulai();

// Inisialisasi Komunikasi Serial, setel baud rate = 9600

Serial.begin(9600);

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register kontrol

Kawat.tulis (0x2A);

// Modus siaga

Kawat.tulis (0x00);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register kontrol

Kawat.tulis (0x2A);

// mode aktif

Kawat.tulis (0x01);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register kontrol

Kawat.tulis (0x0E);

// Setel rentang ke +/- 2g

Kawat.tulis (0x00);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

penundaan (300);

}

lingkaran kosong()

{

data int yang tidak ditandatangani[7];

// Meminta 7 byte data

Wire.requestFrom(Addr, 7);

// Baca 7 byte data

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

if(Wire.available() == 7)

{

data[0] = Wire.read();

data[1] = Kawat.baca();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Kawat.baca();

data[5] = Wire.read();

data[6] = Wire.read();

}

// Ubah 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 serial

Serial.print("Percepatan pada Sumbu X: ");

Serial.println(xAccl);

Serial.print("Percepatan pada Sumbu Y: ");

Serial.println(yAccl);

Serial.print("Percepatan pada Sumbu Z: ");

Serial.println(zAccl);

penundaan (500);

}

Langkah 4: Aplikasi:

MMA8452Q memiliki berbagai aplikasi yang meliputi aplikasi E-Compass, Deteksi orientasi statis yang menggabungkan Portrait/Landscape, Atas/Bawah, Kiri/Kanan, identifikasi posisi Belakang/Depan, Notebook, e-reader, dan Laptop Jatuh dan Deteksi Jatuh, Real-time deteksi orientasi termasuk realitas virtual dan umpan balik posisi pengguna game 3D, Analisis aktivitas waktu nyata seperti penghitungan langkah pedometer, deteksi jatuh bebas untuk HDD, pencadangan GPS perhitungan mati, dan banyak lagi.

Direkomendasikan: