Daftar Isi:

ADXL345 Menggunakan Arduino Uno R3: 5 Langkah
ADXL345 Menggunakan Arduino Uno R3: 5 Langkah

Video: ADXL345 Menggunakan Arduino Uno R3: 5 Langkah

Video: ADXL345 Menggunakan Arduino Uno R3: 5 Langkah
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, Juli
Anonim
ADXL345 Menggunakan Arduino Uno R3
ADXL345 Menggunakan Arduino Uno R3

Dalam pelajaran ini, kita akan belajar bagaimana menggunakan sensor akselerasi ADXL345.

Langkah 1: Komponen

- Papan Arduino Uno * 1

- Kabel USB * 1

- ADXL345 *1

- Papan tempat memotong roti * 1

- Kabel jumper

Langkah 2: Prinsip

Akselerometer digunakan untuk mengukur gaya yang dihasilkan selama percepatan. Yang paling mendasar adalah percepatan gravitasi yang umum dikenal yaitu 1g.

Dengan mengukur percepatan yang disebabkan oleh gravitasi, Anda dapat menghitung sudut kemiringan perangkat ke permukaan yang rata. Dengan menganalisis akselerasi dinamis, Anda dapat mengetahui cara perangkat bergerak. Misalnya, self-balancing board atau hoverboard menerapkan sensor akselerasi dan giroskop untuk filter Kalman dan koreksi postur.

ADXL345

ADXL345 adalah akselerometer 3-sumbu kecil, tipis, berdaya rendah, dengan pengukuran resolusi tinggi (13-bit) hingga ±16 g. Data keluaran digital diformat sebagai pelengkap dua 16-bit dan dapat diakses melalui antarmuka digital SPI (3- atau 4-kawat) atau I2C. Dalam percobaan ini, antarmuka digital I2C digunakan.

Alat ini sangat cocok untuk mengukur akselerasi statis gravitasi dalam aplikasi sensor kemiringan, serta akselerasi dinamis yang dihasilkan dari gerakan atau guncangan. Resolusi tinggi (4 mg/LSB) memungkinkan pengukuran perubahan kemiringan kurang dari 1,0°. Dan sensitivitas yang sangat baik (3,9mg/LSB @2g) memberikan output presisi tinggi hingga ±16g.

Bagaimana ADXL345 bekerja

ADXL345 mendeteksi percepatan dengan komponen penginderaan di depan, dan kemudian komponen penginderaan sinyal listrik mengubahnya menjadi sinyal listrik, yang analog. Selanjutnya AD adapter yang terintegrasi pada modul akan mengubah sinyal analog menjadi sinyal digital.

X_OUT, Y_OUT dan Z_OUT masing-masing adalah nilai pada sumbu X, Y, dan Z. Tempatkan modul menghadap ke atas: Z_OUT dapat mencapai +1g paling banyak, minimum X_OUT adalah -1g ke arah Ax, dan minimum Y_OUT adalah -1g ke arah Ay. Sebaliknya, putar modul secara terbalik: minimum Z_OUT adalah -1g, maksimum X_OUT adalah +1g ke arah Ax, dan maksimum Y_OUT adalah +1g ke arah Ay., seperti yang ditunjukkan di bawah ini. Putar modul ADXL345 dan Anda akan melihat perubahan tiga nilai.

ketika saluran A berubah dari level tinggi ke level rendah, jika saluran B level tinggi, itu menunjukkan rotary encoder berputar searah jarum jam (CW); jika pada saat itu saluran B rendah, berarti berputar berlawanan arah jarum jam (CCW). Jadi jika kita membaca nilai channel B saat channel A low level, kita bisa mengetahui ke arah mana rotary encoder berputar.

Prinsip: Lihat diagram skema modul Rotary Encoder di bawah ini. Dari situ terlihat bahwa pin 3 dari rotary encoder yaitu CLK pada modul adalah channel B. Pin 5 yaitu DT adalah channel A. Untuk mengetahui arah putaran recorder, baca saja nilai CLK dan DT.

Ada chip pengatur tegangan 3.3v di sirkuit, sehingga Anda dapat menyalakan modul dengan 5V atau 3.3V.

Karena SDO telah terhubung ke GND, alamat I2C ADXL345 adalah 0x53, 0xA6 untuk menulis, 0xA7 untuk membaca

Fungsi Pin Modul ADXL345.

Langkah 3: Prosedur

Langkah 1. Bangun sirkuit.

Langkah 2:

Unduh kode dari

Langkah 3:

Unggah sketsa ke papan Arduino Uno

Klik ikon Unggah untuk mengunggah kode ke papan kontrol.

Jika "Selesai mengunggah" muncul di bagian bawah jendela, itu berarti sketsa telah berhasil diunggah.

Setelah mengunggah, buka Serial Monitor, di mana Anda dapat melihat data yang terdeteksi. Ketika akselerasi modul berubah, angkanya akan berubah sesuai di jendela.

Langkah 4: Kode

Kode
Kode

//ADXL335

/********************************

ADXL335

catatan: vcc5v, tetapi ADXL335 Vs adalah 3.3V

Sirkuit:

5V: VCC

analog 0: sumbu x

analog 1: sumbu y

analog 2: sumbu z

Setelah membakar

program, buka jendela debugging monitor serial, di mana Anda dapat melihat data yang terdeteksi sedang ditampilkan. Ketika percepatan bervariasi, angkanya akan bervariasi sesuai.

*********************************

/Surel:

//Situs web:www.primerrobotics.in

const int xpin =

A0; // sumbu x akselerometer

const int ypin =

A1; // sumbu y

const int zpin =

A2; // sumbu z (hanya pada model 3-sumbu)

batalkan pengaturan()

{

// inisialisasi komunikasi serial:

Serial.begin(9600);

}

lingkaran kosong()

{

int x = analogBaca(xpin); //baca dari xpin

penundaan (1); //

int y = analogBaca(ypin); //baca dari ypin

penundaan (1);

int z = analogBaca(zpin); //baca dari zpin

float zero_G = 338,0; // catu daya ADXL335

oleh Vs 3.3V: 3.3V/5V*1024=676/2=338

//Serial.print(x);

//Serial.print("\t");

//Serial.print(y);

//Serial.print("\t");

//Serial.print(z);

//Serial.print("\n");

mengambang

zero_Gx=331.5;//output zero_G dari sumbu x:(x_max + x_min)/2

mengambang

zero_Gy=329.5;//outgput zero_G dari sumbu y:(y_max + y_min)/2

float zero_Gz=340.0;//the

keluaran zero_G dari sumbu z:(z_max + z_min)/2

skala mengambang =

67.6;//catu daya oleh Vs 3.3V:3.3v/5v *1024/3.3v *330mv/g =67.6g

skala mengambang_x =

65;//skala sumbu x: x_max/3.3v*330mv/g

skala mengambang_y =

68.5;//skala sumbu y: y_max/3.3v*330mv/g

skala mengambang_z =

68;//skala sumbu z: z_max/3.3v*330mv/g

Serial.print(((float)x

- zero_Gx)/scale_x); //cetak nilai x pada monitor serial

Serial.print("\t");

Serial.print(((float)y

- zero_Gy)/scale_y); //mencetak nilai y pada monitor serial

Serial.print("\t");

Serial.print(((float)z

- zero_Gz)/scale_z); //cetak nilai z pada monitor serial

Serial.print("\n");

penundaan (1000); //tunggu 1 detik

}

Langkah 5: Analisis Kode

Kode untuk eksperimen ADXL345 mencakup 3 bagian: menginisialisasi setiap port dan perangkat, memperoleh dan menyimpan data yang dikirim dari sensor, dan mengonversi data.

Direkomendasikan: