Daftar Isi:

Pengukuran Percepatan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah
Pengukuran Percepatan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah

Video: Pengukuran Percepatan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah

Video: Pengukuran Percepatan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah
Video: Projek alat pendeteksi gempa menggunakan sensor accelerometer atau Adxl-345 2024, November
Anonim
Image
Image

ADXL345 adalah akselerometer 3-sumbu kecil, tipis, berdaya ultra rendah dengan pengukuran resolusi tinggi (13-bit) hingga ±16 g. Data keluaran digital diformat sebagai pelengkap berpasangan 16-bit dan dapat diakses melalui antarmuka digital I2 C. Ini mengukur akselerasi statis gravitasi dalam aplikasi sensor kemiringan, serta akselerasi dinamis yang dihasilkan dari gerakan atau guncangan. Resolusi tinggi (3,9 mg/LSB) memungkinkan pengukuran perubahan kemiringan kurang dari 1,0°.

Dalam tutorial ini antarmuka modul sensor ADXL345 dengan arduino nano telah diilustrasikan. Untuk membaca nilai akselerasi, kami telah menggunakan arduino dengan adaptor I2c. Adaptor I2C ini membuat koneksi ke modul sensor menjadi mudah dan lebih andal.

Langkah 1: Perangkat Keras Yang Dibutuhkan:

Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan

Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. ADXL345

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk Arduino Nano

Langkah 2: Sambungan Perangkat Keras:

Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras

Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan arduino nano. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

ADXL345 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor.

Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami sarankan menggunakan hookup ini jika Anda agnostik.

Yang Anda butuhkan hanyalah empat kabel! Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C.

Koneksi ini ditunjukkan pada gambar di atas.

Langkah 3: Kode untuk Pengukuran Percepatan:

Kode untuk Pengukuran Percepatan
Kode untuk Pengukuran Percepatan

Mari kita mulai dengan kode arduino sekarang.

Saat menggunakan modul sensor dengan arduino, kami menyertakan pustaka Wire.h. Pustaka "Wire" berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan board arduino.

Seluruh kode arduino diberikan di bawah ini untuk kenyamanan pengguna:

#termasuk

// Alamat ADXL345 I2C adalah 0x53(83)

#tentukan Addr 0x53

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 daftar laju bandwidth

Wire.write(0x2C);

// Mode normal, Kecepatan data keluaran = 100 Hz

Kawat. tulis (0x0A);

// Hentikan transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih register kontrol daya

Kawat.tulis (0x2D);

// Nonaktifkan tidur otomatis

Kawat.tulis (0x08);

// Hentikan transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih format data register

Kawat.tulis (0x31);

// Uji mandiri dinonaktifkan, antarmuka 4-kawat, Resolusi penuh, Rentang = +/-2g

Kawat.tulis (0x08);

// Hentikan transmisi I2C

Kawat.endTransmisi();

penundaan (300);

}

lingkaran kosong()

{

data int yang tidak ditandatangani[6];

untuk(int i = 0; i < 6; i++)

{

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih daftar data

Wire.write((50 + i));

// Hentikan transmisi I2C

Kawat.endTransmisi();

// Meminta 1 byte data

Wire.requestFrom(Addr, 1);

// Baca 6 byte data

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

if(Wire.available() == 1)

{

data = Wire.read();

}

}

// Ubah data menjadi 10-bit

int xAccl = (((data[1] & 0x03) * 256) + data[0]);

jika(xAccl > 511)

{

xAccl -= 1024;

}

int yAccl = (((data[3] & 0x03) * 256) + data[2]);

jika(yAccl > 511)

{

yAccl -= 1024;

}

int zAccl = (((data[5] & 0x03) * 256) + data[4]);

jika(zAccl > 511)

{

zAccl -= 1024;

}

// Keluarkan data ke monitor serial

Serial.print("Percepatan pada sumbu X adalah: ");

Serial.println(xAccl);

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

Serial.println(yAccl);

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

Serial.println(zAccl);

penundaan (300);

}

Dalam wire library Wire.write() dan Wire.read() digunakan untuk menulis perintah dan membaca output sensor.

Serial.print() dan Serial.println() digunakan untuk menampilkan output dari sensor pada serial monitor Arduino IDE.

Output dari sensor ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

ADXL345 adalah akselerometer 3-sumbu kecil, tipis, berdaya ultra rendah yang dapat digunakan di Handset, Instrumentasi medis, dll. Aplikasinya juga mencakup Gaming dan perangkat penunjuk, instrumentasi Industri, Perangkat navigasi pribadi, dan perlindungan Hard disk drive (HDD).

Direkomendasikan: