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.
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.
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.
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.
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.
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.