Daftar Isi:
- Langkah 1: Perangkat Keras Yang Dibutuhkan:
- Langkah 2: Sambungan Perangkat Keras:
- Langkah 3: Kode Arduino untuk Pengukuran Akselerasi:
- Langkah 4: Aplikasi:
Video: Pengukuran Akselerasi Menggunakan BMA250 dan Arduino Nano: 4 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
BMA250 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 I2C. 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 kita akan mengukur percepatan di ketiga sumbu tegak lurus menggunakan BMA250 dan Arduino Nano.
Langkah 1: Perangkat Keras Yang Dibutuhkan:
Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:
1. BMA250
2. Arduino Nano
3. Kabel I2C
4. Perisai I2C Untuk Arduino Nano
Langkah 2: Sambungan Perangkat Keras:
Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan arduino. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:
BMA250 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 Arduino untuk Pengukuran Akselerasi:
Mari kita mulai dengan kode Arduino sekarang.
Saat menggunakan modul sensor dengan Arduino, kami menyertakan perpustakaan Wire.h. Pustaka "Wire" berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan papan Arduino.
Seluruh kode Arduino diberikan di bawah ini untuk kenyamanan pengguna:
#termasuk
// Alamat BMA250 I2C adalah 0x18(24)
#tentukan Addr 0x18
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 pilihan rentang
Wire.write(0x0F);
// Setel rentang +/- 2g
Kawat.tulis (0x03);
// Hentikan Transmisi I2C
Kawat.endTransmisi();
// Mulai Transmisi I2C
Wire.beginTransmission(Addr);
// Pilih register bandwidth
Kawat.tulis (0x10);
// Setel bandwidth 7,81 Hz
Kawat.tulis (0x08);
// Hentikan Transmisi I2C
Kawat.endTransmisi(); penundaan(300);}
lingkaran kosong()
{
data int tidak ditandatangani[0];
// Mulai Transmisi I2C
Wire.beginTransmission(Addr);
// Pilih Register Data (0x02 0x07)
Kawat.tulis (0x02);
// Hentikan Transmisi I2C
Kawat.endTransmisi();
// Permintaan 6 byte
Wire.requestFrom(Addr, 6);
// Baca enam byte
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if(Wire.available() == 6)
{
data[0] = Wire.read();
data[1] = Kawat.baca();
data[2] = Wire.read();
data[3] = Wire.read();
data[4] = Kawat.baca();
data[5] = Wire.read();
}
penundaan (300);
// Ubah data menjadi 10 bit
float xAccl = ((data[1] * 256.0) + (data[0] & 0xC0)) / 64;
jika (xAccl > 511)
{
xAccl -= 1024;
}
float 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 serial
Serial.print("Akselerasi pada Sumbu X:");
Serial.println(xAccl);
Serial.print("Percepatan pada Sumbu Y:");
Serial.println(yAccl);
Serial.print("Akselerasi pada Sumbu Z:");
Serial.println(zAccl);
}
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 sensor pada serial monitor Arduino IDE.
Output sensor ditunjukkan pada gambar di atas.
Langkah 4: Aplikasi:
Akselerometer seperti BMA250 kebanyakan menemukan aplikasinya dalam permainan dan perpindahan profil tampilan. Modul sensor ini juga digunakan dalam sistem manajemen daya canggih untuk aplikasi seluler. BMA250 adalah sensor akselerasi digital triaksial yang digabungkan dengan pengontrol interupsi yang dipicu gerakan on-chip yang cerdas.
Direkomendasikan:
Pengukuran Kelembaban dan Suhu Menggunakan HIH6130 dan Arduino Nano: 4 Langkah
Pengukuran Kelembaban dan Suhu Menggunakan HIH6130 dan Arduino Nano: HIH6130 merupakan sensor kelembaban dan suhu dengan output digital. Sensor ini memberikan tingkat akurasi ±4% RH. Dengan stabilitas jangka panjang terdepan di industri, I2C digital dengan kompensasi suhu sejati, keandalan terdepan di industri, Efisiensi energi
Memantau Akselerasi Menggunakan Raspberry Pi dan AIS328DQTR Menggunakan Python: 6 Langkah
Memantau Akselerasi Menggunakan Raspberry Pi dan AIS328DQTR Menggunakan Python: Akselerasi terbatas, menurut saya menurut beberapa hukum Fisika.- Terry Riley Seekor cheetah menggunakan akselerasi yang luar biasa dan perubahan kecepatan yang cepat saat mengejar. Makhluk tercepat di darat sesekali menggunakan kecepatan tertingginya untuk menangkap mangsa. NS
Pengukuran Akselerasi Menggunakan BMA250 dan Raspberry Pi: 4 Langkah
Pengukuran Akselerasi Menggunakan BMA250 dan Raspberry Pi: BMA250 adalah akselerometer 3-sumbu 3-sumbu kecil, tipis, berdaya sangat 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 I2C. Ini mengukur statis
Pengukuran Percepatan Menggunakan BMA250 dan Foton Partikel: 4 Langkah
Pengukuran Akselerasi Menggunakan BMA250 dan Foton Partikel: BMA250 adalah akselerometer 3-sumbu 3-sumbu kecil, tipis, berdaya ultralow dengan pengukuran resolusi tinggi (13-bit) hingga ±16 g. Data keluaran digital diformat sebagai pelengkap berpasangan 16-bit dan dapat diakses melalui antarmuka digital I2C. Ini mengukur statis
Arduino Nano dan Visuino: Konversi Akselerasi ke Sudut Dari Akselerometer dan Giroskop Sensor MPU6050 I2C: 8 Langkah (dengan Gambar)
Arduino Nano dan Visuino: Konversi Akselerasi ke Sudut Dari Sensor Akselerometer dan Giroskop MPU6050 I2C: Beberapa waktu yang lalu saya memposting tutorial tentang bagaimana Anda dapat menghubungkan Sensor Akselerometer, Giroskop, dan Kompas MPU9250 ke Arduino Nano dan memprogramnya dengan Visuino untuk mengirim data paket dan tampilan pada Scope dan Instrumen Visual. Accelerometer mengirimkan X, Y