
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


BMA250 adalah kecil, tipis, kuasa ultralow, akselerometer 3-paksi 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 I2C. 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 kita akan mengukur pecutan di ketiga paksi tegak lurus menggunakan BMA250 dan Arduino Nano.
Langkah 1: Perkakasan Diperlukan:



Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:
1. BMA250
2. Arduino Nano
3. Kabel I2C
4. Perisai I2C Untuk Arduino Nano
Langkah 2: Penyambungan Perkakasan:


Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan arduino. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:
BMA250 akan berfungsi di atas 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 Arduino 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 BMA250 I2C adalah 0x18 (24)
#tentukan Addr 0x18
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 pilihan julat
Wire.write (0x0F);
// Tetapkan julat +/- 2g
Wire.write (0x03);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih daftar lebar jalur
Wire.write (0x10);
// Tetapkan lebar jalur 7.81 Hz
Wire.write (0x08);
// Hentikan Penghantaran I2C
Wire.endTransmission (); kelewatan (300);}
gelung kosong ()
{
data int yang tidak ditandatangani [0];
// Mulakan Penghantaran I2C
Wire.beginTransmission (Addr);
// Pilih Daftar Data (0x02 - 0x07)
Wire.write (0x02);
// Hentikan Penghantaran I2C
Wire.endTransmission ();
// Minta 6 bait
Wire.requestFrom (Addr, 6);
// Baca enam bait
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
jika (Wire.available () == 6)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
data [4] = Wire.read ();
data [5] = Wire.read ();
}
kelewatan (300);
// Tukarkan data menjadi 10 bit
terapung xAccl = ((data [1] * 256.0) + (data [0] & 0xC0)) / 64;
jika (xAccl> 511)
{
xAccl - = 1024;
}
terapung yAccl = ((data [3] * 256.0) + (data [2] & 0xC0)) / 64;
jika (yAccl> 511)
{
yAccl - = 1024;
}
float zAccl = ((data [5] * 256.0) + (data [4] & 0xC0)) / 64;
jika (zAccl> 511)
{
zAccl - = 1024;
}
// 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);
}
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:

Accelerometer seperti BMA250 kebanyakannya menggunakan aplikasinya dalam permainan dan menukar profil paparan. Modul sensor ini juga digunakan dalam sistem pengurusan kuasa lanjutan untuk aplikasi mudah alih. BMA250 adalah sensor pecutan digital triaksial yang digabungkan dengan pengawal interrupt yang dicetuskan oleh gerakan on-chip pintar.
Disyorkan:
Pengukuran Pecutan Menggunakan ADXL345 dan Foton Partikel: 4 Langkah

Pengukuran Pecutan Menggunakan ADXL345 dan Foton Partikel: ADXL345 adalah kecil, nipis, kuasa ultralow, akselerator 3 paksi dengan pengukuran 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. Mengukur
Pengukuran Pecutan Menggunakan H3LIS331DL dan Arduino Nano: 4 Langkah

Pengukuran Percepatan Menggunakan H3LIS331DL dan Arduino Nano: H3LIS331DL, adalah akselerometer linear 3-paksi berprestasi tinggi kuasa rendah milik keluarga "nano", dengan antara muka siri I²C digital. H3LIS331DL mempunyai skala penuh yang boleh dipilih pengguna ± 100g / ± 200g / ± 400g dan mampu mengukur pecutan dengan
Pengukuran Pecutan Menggunakan ADXL345 dan Arduino Nano: 4 Langkah

Pengukuran Pecutan Menggunakan ADXL345 dan Arduino Nano: ADXL345 adalah kecil, nipis, kuasa ultralow, akselerator 3-paksi dengan pengukuran 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. Mengukur
Pengukuran Pecutan Menggunakan BMA250 dan Raspberry Pi: 4 Langkah

Pengukuran Pecutan Menggunakan BMA250 dan Raspberry Pi: BMA250 adalah kecil, nipis, kuasa ultralow, akselerator 3-paksi dengan pengukuran resolusi tinggi (13-bit) hingga ± 16 g. Data output digital diformat sebagai pelengkap dua-bit 16-bit dan dapat diakses melalui antara muka digital I2C. Mengukur statik
Pengukuran Pecutan Menggunakan BMA250 dan Foton Zarah: 4 Langkah

Pengukuran Pecutan Menggunakan BMA250 dan Foton Partikel: BMA250 adalah kecil, nipis, kuasa ultralow, akselerator 3 paksi dengan pengukuran resolusi tinggi (13-bit) hingga ± 16 g. Data output digital diformat sebagai pelengkap dua-bit 16-bit dan dapat diakses melalui antara muka digital I2C. Mengukur statik