Cara Menyambungkan Accelerometer Ke Arduino

Isi kandungan:

Cara Menyambungkan Accelerometer Ke Arduino
Cara Menyambungkan Accelerometer Ke Arduino

Video: Cara Menyambungkan Accelerometer Ke Arduino

Video: Cara Menyambungkan Accelerometer Ke Arduino
Video: Акселерометр Arduino ADXL345 - Как считывать показания Arduino ADXL345 2024, Mungkin
Anonim

Kali ini kita akan berurusan dengan menghubungkan pecutan triaksial analog ADXL335 ke Arduino.

Analog Accelerometer ADXL335
Analog Accelerometer ADXL335

Perlu

  • - Arduino;
  • - pecutan ADXL335;
  • - komputer peribadi dengan persekitaran pengembangan Arduino IDE.

Arahan

Langkah 1

Accelerometer digunakan untuk menentukan vektor pecutan. Accelerometer ADXL335 mempunyai tiga paksi, dan berkat ini, ia dapat menentukan vektor pecutan dalam ruang tiga dimensi. Oleh kerana kekuatan graviti juga merupakan vektor, accelerometer dapat menentukan orientasinya sendiri dalam ruang tiga dimensi berbanding dengan pusat Bumi.

Ilustrasi menunjukkan gambar dari pasport (https://www.analog.com/static/imported-files/data_sheets/ADXL335.pdf) untuk pecutan ADXL335. Di sini ditunjukkan paksi koordinat kepekaan akselerometer berkaitan dengan penempatan geometri badan peranti di ruang angkasa, serta jadual nilai voltan dari 3 saluran akselerometer bergantung pada orientasinya di ruang angkasa. Data dalam jadual diberikan untuk sensor ketika rehat.

Mari kita perhatikan dengan lebih dekat apa yang ditunjukkan oleh pecutan. Biarkan sensor berbaring secara mendatar, misalnya, di atas meja. Maka unjuran vektor pecutan akan sama dengan 1g di sepanjang paksi Z, atau Zout = 1g. Dua paksi yang lain akan mempunyai nol: Xout = 0 dan Yout = 0. Apabila sensor dihidupkan "di belakangnya", ia akan diarahkan ke arah yang berlawanan berbanding dengan vektor graviti, iaitu. Zout = -1g. Begitu juga, pengukuran dilakukan pada ketiga-tiga paksi. Jelas bahawa akselerometer dapat diposisikan seperti yang dikehendaki di ruang angkasa, jadi kita akan mengambil bacaan selain sifar dari ketiga saluran tersebut.

Sekiranya probe digoncang dengan kuat di sepanjang paksi-Z menegak, nilai Zout akan lebih besar daripada "1g". Pecutan maksimum yang dapat diukur adalah "3g" di setiap paksi ke arah mana pun (iaitu kedua-duanya dengan "tambah" dan "tolak").

Paksi kepekaan akselerometer dan jadual nilai output
Paksi kepekaan akselerometer dan jadual nilai output

Langkah 2

Saya rasa kami telah mengetahui prinsip operasi pecutan. Sekarang mari kita lihat rajah sambungan.

Cip akselerometer analog ADXL335 agak kecil dan diletakkan dalam bungkusan BGA, dan sukar untuk memasangnya di papan di rumah. Oleh itu, saya akan menggunakan modul GY-61 yang sudah siap dengan pecutan ADXL335. Modul sedemikian di kedai dalam talian Cina berharga hampir satu sen.

Untuk menghidupkan pecutan, perlu memberi voltan +3, 3 V ke pin VCC modul. Saluran pengukur sensor disambungkan ke pin analog Arduino, misalnya, "A0", "A1" dan " A2 ". Ini adalah keseluruhan litar:)

Gambarajah pendawaian pecutan ADXL335 ke Arduno
Gambarajah pendawaian pecutan ADXL335 ke Arduno

Langkah 3

Mari memuatkan lakaran ini ke memori Arduino. Kami akan membaca bacaan dari input analog pada tiga saluran, menukarnya menjadi voltan dan mengeluarkannya ke port bersiri.

Arduino mempunyai ADC 10-bit, dan voltan pin maksimum yang dibenarkan ialah 5 volt. Voltan yang diukur dikodkan dengan bit yang hanya dapat mengambil 2 nilai - 0 atau 1. Ini bermaksud bahawa keseluruhan julat pengukuran akan dibahagi dengan (1 + 1) hingga ke-10, iaitu pada 1024 segmen yang sama.

Untuk menukar bacaan menjadi volt, anda perlu membahagikan setiap nilai yang diukur pada input analog dengan 1024 (segmen), dan kemudian kalikan dengan 5 (volt).

Mari lihat apa yang sebenarnya berasal dari pecutan menggunakan paksi-Z sebagai contoh (lajur terakhir). Apabila sensor diposisikan secara mendatar dan melihat ke atas, angka akan datang (2.03 +/- 0.01). Jadi ini harus sesuai dengan pecutan "+ 1g" di sepanjang paksi Z dan sudut 0 darjah. Balikkan sensor. Nombor tiba (1, 69 +/- 0, 01), yang harus sesuai dengan "-1g" dan sudut 180 darjah.

Lakaran membaca pecutan
Lakaran membaca pecutan

Langkah 4

Mari ambil nilai dari pecutan pada sudut 90 dan 270 darjah dan masukkan ke dalam jadual. Jadual menunjukkan sudut putaran pecutan (lajur "A") dan nilai Zout yang sepadan dalam volt (lajur "B").

Untuk kejelasan, petak voltan pada output Zout berbanding sudut putaran ditunjukkan. Medan biru adalah jarak rehat (pada pecutan 1g). Kotak merah jambu pada grafik adalah margin supaya kita dapat mengukur pecutan hingga + 3g dan hingga -3g.

Pada putaran 90 darjah, paksi-Z mempunyai pecutan sifar. Mereka. nilai 1,67 volt adalah Zo sifar bersyarat untuk paksi Z. Kemudian anda dapat mengetahui pecutan seperti ini:

g = Zout - Zo / sensitiviti_z, di sini Zout adalah nilai yang diukur dalam milivol, Zo adalah nilai pada pecutan sifar dalam milivol, sensitiviti_z adalah kepekaan sensor di sepanjang paksi Z. kalibrasi pecutan dan hitung nilai kepekaan khusus untuk anda sensor menggunakan formula:

sensitiviti_z = [Z (0 darjah) - Z (90 darjah)] * 1000. Dalam kes ini, kepekaan pecutan di sepanjang paksi Z = (2, 03 - 1, 68) * 1000 = 350 mV. Begitu juga, kepekaan perlu dikira untuk paksi X dan Y.

Lajur "C" jadual menunjukkan pecutan yang dihitung untuk lima sudut pada kepekaan 350. Seperti yang anda lihat, mereka praktikal bertepatan dengan yang ditunjukkan dalam Rajah 1.

Kesesuaian sudut putaran pecutan dengan pembacaan
Kesesuaian sudut putaran pecutan dengan pembacaan

Langkah 5

Mengingat kursus asas geometri, kami mendapat formula untuk mengira sudut putaran pecutan:

angle_X = arctg [sqrt (Gz ^ 2 + Gy ^ 2) / Gx].

Nilai berada dalam radian. Untuk menukarnya menjadi darjah, bahagi dengan Pi dan darabkan dengan 180.

Hasilnya, lakaran lengkap yang mengira sudut pecutan dan putaran pecutan sepanjang semua paksi ditunjukkan dalam ilustrasi. Komen memberikan penjelasan untuk kod program.

Semasa mengeluarkan ke port "Serial.print ()", watak "\ t" menunjukkan watak tab sehingga lajur sama dan nilainya terletak di bawah yang lain. "+" bermaksud penggabungan (gabungan) rentetan. Lebih-lebih lagi, pengendali "String ()" secara eksplisit memberitahu penyusun bahawa nilai berangka mesti ditukar menjadi rentetan. Pengendali bulat () membundarkan sudut ke 1 darjah terdekat.

Lakaran yang mengira pecutan dan sudut pecutan
Lakaran yang mengira pecutan dan sudut pecutan

Langkah 6

Oleh itu, kami belajar bagaimana mengambil dan memproses data dari pecutan analog ADXL335 menggunakan Arduino. Sekarang kita boleh menggunakan pecutan dalam reka bentuk kita.

Disyorkan: