Isi kandungan:

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

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

Video: Pengukuran Pecutan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah
Video: #20 Monitoring Percepatan Getaran Menggunakan Sensor MPU6050 dan IOT (acceleration of vibration) 2024, Julai
Anonim
Image
Image

ADXL345 adalah akselerometer 3-paksi kecil, tipis, kuasa ultra kecil dengan ukuran resolusi tinggi (13-bit) hingga ± 16 g. Data output digital diformat sebagai pelengkap dua-bit 16-bit dan dapat diakses melalui antara muka digital I2 C. Ini mengukur percepatan graviti statik dalam aplikasi penginderaan kecondongan, serta percepatan dinamis yang dihasilkan dari gerakan atau kejutan. Resolusi tinggi (3.9 mg / LSB) memungkinkan pengukuran perubahan kecenderungan kurang dari 1.0 °.

Dalam tutorial ini antara muka modul sensor ADXL345 dengan arduino nano telah digambarkan. Untuk membaca nilai pecutan, kami telah menggunakan arduino dengan penyesuai I2c. Penyesuai I2C ini menjadikan sambungan ke modul sensor mudah dan lebih dipercayai.

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:

1. ADXL345

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk Arduino Nano

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan arduino nano. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

ADXL345 akan berfungsi menggunakan I2C. Berikut adalah contoh rajah pendawaian, yang menunjukkan cara memasang setiap antara muka sensor.

Di luar kotak, papan dikonfigurasikan untuk antara muka I2C, oleh itu kami mengesyorkan menggunakan penyambungan ini jika anda tidak agnostik.

Yang anda perlukan hanyalah empat wayar! Hanya diperlukan empat sambungan pin Vcc, Gnd, SCL dan SDA dan ini disambungkan dengan bantuan kabel I2C.

Sambungan ini ditunjukkan dalam gambar di atas.

Langkah 3: Kod untuk Pengukuran Pecutan:

Kod untuk Pengukuran Pecutan
Kod untuk Pengukuran Pecutan

Mari mulakan dengan kod arduino sekarang.

Semasa menggunakan modul sensor dengan arduino, kami menyertakan perpustakaan Wire.h. Perpustakaan "Wire" mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan papan arduino.

Keseluruhan kod arduino diberikan di bawah untuk kemudahan pengguna:

#sertakan

// Alamat ADXL345 I2C adalah 0x53 (83)

#tentukan Addr 0x53

persediaan tidak sah ()

{

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Mulakan komunikasi bersiri, tetapkan kadar baud = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar kadar lebar jalur

Wire.write (0x2C);

// Mod normal, Kadar data output = 100 Hz

Wire.write (0x0A);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar kawalan kuasa

Wire.write (0x2D);

// Matikan tidur automatik

Wire.write (0x08);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar format data

Wire.write (0x31);

// Uji kendiri dilumpuhkan, antara muka 4 wayar, Resolusi penuh, Julat = +/- 2g

Wire.write (0x08);

// Hentikan penghantaran I2C

Wire.endTransmission ();

kelewatan (300);

}

gelung kosong ()

{

data int yang tidak ditandatangani [6];

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

{

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar data

Wire.write ((50 + i));

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Minta 1 bait data

Wire.requestFrom (Addr, 1);

// Baca 6 bait data

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

jika (Wire.available () == 1)

{

data = Wire.read ();

}

}

// Tukarkan 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 bersiri

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

Serial.println (xAccl);

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

Serial.println (yAccl);

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

Serial.println (zAccl);

kelewatan (300);

}

Di perpustakaan wayar Wire.write () dan Wire.read () digunakan untuk menulis perintah dan membaca output sensor.

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

Output sensor ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Permohonan
Permohonan

ADXL345 adalah kecil, tipis, daya ultralow, akselerometer 3-paksi yang dapat digunakan di Handset, alat perubatan dll. Aplikasinya juga merangkumi Perisian permainan dan penunjuk, Instrumentasi industri, Peranti navigasi peribadi dan perlindungan cakera keras (HDD).

Disyorkan: