Bagaimana Menghubungkan Kompas Digital HMC5883 Ke Arduino

Daftar Isi:

Bagaimana Menghubungkan Kompas Digital HMC5883 Ke Arduino
Bagaimana Menghubungkan Kompas Digital HMC5883 Ke Arduino

Video: Bagaimana Menghubungkan Kompas Digital HMC5883 Ke Arduino

Video: Bagaimana Menghubungkan Kompas Digital HMC5883 Ke Arduino
Video: hmc5883l компас arduino, датчик магнитометра, навигация по компасу "Arduino Project для начинающих 2024, Mungkin
Anonim

Mari kita pertimbangkan koneksi modul GY-273 dengan kompas digital tiga sumbu Honeywell HMC5883L. Sirkuit mikro ini dapat digunakan untuk pengukuran magnetometrik, dalam navigasi, jika akurasi pengukuran tinggi tidak diperlukan (dengan kesalahan 1 … 2 derajat dan kemungkinan kalibrasi). Perangkat terhubung melalui antarmuka I2C.

Kompas Digital HMC5883
Kompas Digital HMC5883

Diperlukan

  • - Kompas digital HMC5883;
  • -Arduino;
  • - papan prototipe dan kabel penghubung;
  • - komputer.

instruksi

Langkah 1

Ini adalah fitur utama dari kompas magnetik:

- Sensor sensitif magnetis 3-sumbu;

- ADC 12-bit dengan resolusi 2 mGs (milligauss);

- tes mandiri bawaan;

- tegangan operasi rendah dan konsumsi rendah;

- antarmuka digital I2C;

- tingkat polling tinggi - hingga 160 kali per detik (waktu satu pengukuran sekitar 6 ms);

- akurasi penentuan arah adalah 1 °… 2 °;

- dapat digunakan di medan magnet yang kuat (sampai ± 8 Gauss).

Diagram untuk menghubungkan sensor magnetik HMC5883L ke Arduino ditunjukkan pada gambar. Ini sangat kompak dan sederhana, karena Antarmuka I2C dua kabel sangat bagus karena memerlukan sedikit koneksi. Anda bisa menggunakan papan tempat memotong roti.

Menghubungkan kompas digital HMC5883 ke Arduino
Menghubungkan kompas digital HMC5883 ke Arduino

Langkah 2

Seharusnya terlihat seperti foto. Saya juga akan menghubungkan penganalisis logika ke bus SCL dan SDA untuk memantau pertukaran informasi antara modul Arduino dan HMC5883. Itu tidak wajib.

Kompas digital HMC5883 terhubung ke Arduino di papan tempat memotong roti
Kompas digital HMC5883 terhubung ke Arduino di papan tempat memotong roti

Langkah 3

Sebagai kenalan pertama, mari kita coba membaca register identifikasi 10 (0xA), 11 (0xB) dan 12 (0xC) dari kompas digital HMC5883 dan menulis sketsa seperti pada gambar. Ini dilengkapi dengan komentar rinci.

Sketsa membaca register identifikasi HMC5883
Sketsa membaca register identifikasi HMC5883

Langkah 4

Sinyal yang diperoleh dengan penganalisis logika akan seperti yang ditunjukkan pada ilustrasi.

Apa artinya? Byte pertama adalah alamat I2C yang dengannya kita (perangkat master, Arduino) membangun komunikasi (tinggi 7 bit 0x1E), dan mode tulis (bit rendah - 0x0); nomornya adalah 0x3C. Byte kedua adalah angka 0xA, yang kami tulis untuk mengatasi 0x1E dan bit konfirmasi dari sensor HMC5883L, yang merupakan slave. Ini adalah nomor register dari mana kita akan mulai membaca data. Ini mengakhiri transaksi pertama. Yang berikutnya dimulai. Byte ketiga adalah permintaan baca dari slave (7 bit paling signifikan adalah alamat 0x1E, bit ke-8 adalah operasi baca 0x1; angka yang dihasilkan adalah 0x3D). Tiga byte terakhir adalah respon dari slave HMC5883L dari register masing-masing 0xA, 0xB, dan 0xC.

Kompas digital HMC5883L bergerak melalui register secara independen selama pembacaan terus menerus. itu. tidak perlu (tetapi tidak dilarang) untuk menentukan kasus setiap kali. Misalnya, jika alih-alih 0xA kita akan menulis 0x3 dan membaca 10 kali, kita akan mendapatkan nilai dalam 10 register, mulai dari tanggal 3 hingga tanggal 12.

Dan apa tiga angka ini - 0x48, 0x34, 0x33? Menggunakan lembar data untuk kompas digital HMC5883L lagi, kita akan melihat bahwa ini adalah nilai default untuk tiga register identifikasi.

Diagram waktu pertukaran I2C dengan kompas digital HMC5883
Diagram waktu pertukaran I2C dengan kompas digital HMC5883

Langkah 5

Untuk mendapatkan data kompas digital pada medan magnet, Anda perlu membaca register 3 sampai 8, sama seperti kita membaca register identifikasi. Satu-satunya perbedaan adalah bahwa data untuk masing-masing dari tiga sumbu X, Y dan Z disajikan sebagai angka byte ganda. Mengubahnya menjadi angka desimal, kami mendapatkan arah di sepanjang masing-masing dari tiga sumbu.

Direkomendasikan: