Cara Menghubungkan Kompas Digital HMC5883 Ke Arduino

Isi kandungan:

Cara Menghubungkan Kompas Digital HMC5883 Ke Arduino
Cara Menghubungkan Kompas Digital HMC5883 Ke Arduino

Video: Cara Menghubungkan Kompas Digital HMC5883 Ke Arduino

Video: Cara Menghubungkan Kompas Digital HMC5883 Ke Arduino
Video: Трехосевой цифровой компас HMC5883L и Arduino 2024, Mungkin
Anonim

Mari kita pertimbangkan sambungan modul GY-273 dengan kompas digital tiga paksi Honeywell HMC5883L. Litar mikro ini dapat digunakan untuk pengukuran magnetometrik, dalam navigasi, jika ketepatan pengukuran yang tinggi tidak diperlukan (dengan kesalahan 1 … 2 darjah dan kemungkinan penentukuran). Peranti disambungkan melalui antara muka I2C.

Kompas Digital HMC5883
Kompas Digital HMC5883

Perlu

  • - Kompas digital HMC5883;
  • - Arduino;
  • - papan prototaip dan wayar penyambung;
  • - komputer.

Arahan

Langkah 1

Ini adalah ciri utama kompas magnet:

- Sensor sensitif 3 paksi magnet;

- ADC 12-bit dengan resolusi 2 mG (miligauss);

- ujian kendiri terbina dalam;

- voltan operasi rendah dan penggunaan rendah;

- antara muka digital I2C;

- kadar pengundian tinggi - hingga 160 kali sesaat (masa satu pengukuran adalah sekitar 6 ms);

- ketepatan menentukan arah adalah 1 ° … 2 °;

- boleh digunakan dalam medan magnet yang kuat (hingga ± 8 Gauss).

Rajah untuk menyambungkan sensor magnetik HMC5883L ke Arduino ditunjukkan dalam gambar. Ia sangat padat dan ringkas, kerana Antara muka I2C dua wayar sangat bagus kerana memerlukan sedikit sambungan. Anda boleh menggunakan papan roti.

Menyambungkan kompas digital HMC5883 ke Arduino
Menyambungkan kompas digital HMC5883 ke Arduino

Langkah 2

Ia semestinya kelihatan seperti foto. Saya juga akan menyambungkan penganalisis logik ke bas SCL dan SDA untuk memantau pertukaran maklumat antara modul Arduino dan HMC5883. Ia tidak wajib.

Kompas digital HMC5883 disambungkan ke Arduino pada papan roti
Kompas digital HMC5883 disambungkan ke Arduino pada papan roti

Langkah 3

Sebagai kenalan pertama, mari kita cuba membaca daftar pengenalan 10 (0xA), 11 (0xB) dan 12 (0xC) kompas digital HMC5883 dan menulis lakaran seperti dalam gambar. Ia dibekalkan dengan komen terperinci.

Lakarkan membaca daftar pengenalan HMC5883
Lakarkan membaca daftar pengenalan HMC5883

Langkah 4

Isyarat yang diperoleh dengan penganalisis logik akan seperti yang ditunjukkan dalam ilustrasi.

Apakah maksudnya? Byte pertama adalah alamat I2C yang dengannya kami (peranti induk, Arduino) menjalin komunikasi (tinggi 7 bit 0x1E), dan mod penulisan (bit rendah - 0x0); bilangannya ialah 0x3C. Byte kedua adalah nombor 0xA, yang kami tulis untuk mengatasi 0x1E dan bit pengesahan dari sensor HMC5883L, yang merupakan hamba. Ini adalah nombor pendaftaran dari mana kita akan mula membaca data. Ini menyimpulkan transaksi pertama. Yang seterusnya bermula. Byte ketiga adalah permintaan baca dari hamba (7 bit yang paling ketara adalah alamat 0x1E, bit ke-8 adalah operasi baca 0x1; nombor yang dihasilkan adalah 0x3D). 3 tiga bait terakhir adalah tindak balas dari hamba HMC5883L dari register 0xA, 0xB, dan 0xC, masing-masing.

Kompas digital HMC5883L bergerak melalui register secara bebas semasa pembacaan berterusan. Mereka. tidak perlu (tetapi tidak dilarang) untuk menentukan kesnya setiap kali. Sebagai contoh, jika bukan 0xA kita menulis 0x3 dan membaca 10 kali, kita akan mendapat nilai dalam 10 daftar, bermula dari 3 hingga 12.

Dan apakah tiga nombor ini - 0x48, 0x34, 0x33? Menggunakan lembaran data untuk kompas digital HMC5883L sekali lagi, kita akan melihat bahawa ini adalah nilai lalai untuk ketiga-tiga daftar pengenalan.

Rajah masa pertukaran I2C dengan kompas digital HMC5883
Rajah masa pertukaran I2C dengan kompas digital HMC5883

Langkah 5

Untuk mendapatkan data kompas digital pada medan magnet, anda perlu membaca register 3 hingga 8, sama seperti kita membaca register pengenalan. Satu-satunya perbezaan ialah data untuk setiap tiga paksi X, Y dan Z disajikan sebagai nombor byte dua kali. Menukarkannya menjadi nombor perpuluhan, kita mendapat arah di sepanjang tiga paksi tersebut.

Disyorkan: