Sunday 9 October 2016

Cara Mengakses HMC5883L Anisotropic Magnetoresistif Sensor

      HMC5883L Merupakan sensor Anisotropic Magnetoresistif(AMR) buatan Honey Well. Perlu diketahui teknologi AMR menghasilkan keuntungan lebih pada teknologi sensor magnetik. Anisotropic ini berhugungan dengan arah kepresisian dari sensitifitas sumbu dan liniearitas. Sensor ini dibentuk dari konstruksi "Solid-state" dengan percabangan sensitifitas sumbu yang sangat rendah, yang didesain untuk mengukur arah dari kedua sisi sumbu magnetik bumi. Dari ordo mili-gauss hingga 8 gauss.

     Sensor ini menggunakan protokol I2C untuk komunikasi datanya. Komunikasi dengan menggunakan I2C ini hanya memerlukan 2 kabel saja sebagai jalurnya. Yaitu SDA sebagai jalur Data, dan SCL sebagai jalur Clock nya. Selebihnya jalur Vcc(1.2 - 3.6V) dan GND.

     Karena menggunakan protokol I2C, maka sensor ini mempunyai alamat yang perlu dituju sebagai jalur untuk mendapatkan datanya. Seperti jika kita ingin mengambil sepeda di rumah teman, kita harus tahu alamat rumah dari teman kita tersebut. Berikut alamat-alamat dari sensor ini

HMC5883L Address

0x3D ----> Alamat Baca (8 bit)
0x3C ----> Alamat Tulis (8 bit)

Itu baru alamat baca dan tulis, Lha alamat datanya mana....???

alamat datanya sebagai berikut

Pengisian alamat misal 0x00 ---> berarti menuju alamat Configuration Register A. Begitu pengisiannya.

Untuk Alamat dari Sensor ini sendiri adalah 0x1E

Untuk penjelasan Register dari lokasi alamat sebagai berikut

1. Configuration Register A

Configuration Register A (CRA) terdiri dari 8 bit data(1 byte). Spesifikasi yang kita inginkan dengan mengubah nilai dari masing2 bit (0/1)

CRA1 - CRA0 ---> Mengukur Bit Konfigurasi (Default berisi 00)  #Penjelasan di tabel berikutnya
CRA4 - CRA2 ---> Data Output Rate Bits. Bit ini men-set rata2 data yang mana ditulis pada semua 3                                 register output. #Penjelasan di tabel berikutnya
CRA6 - CRA5 ---> Memilih angka dari rata-rata sampling (dari 1 s/d 8) per keluaran pengukuran
                                00 = 1 (Deafult)
                                01 = 2 sampling per keluaran pengukuran
                                10 = 4 sampling per keluaran pengukuran
                                11 = 8 sampling per keluaran pengukuran
CRA7              ---> Bit ini melayani fungsi yang akan datang. Atur ke '0' ketika menggunakan                                            konfigurasi CRA


Konfigurasi isi data CRA1-CRA0

0 0    =    Konfigurasi pengukuran normal(Default). Piin positif & negatif dari beban resistif tetap                      mengambang dan impedansi tinggi.

0 1    =    Konfigurasi bias positif untuk sumbu X, Y, dan Z. Dalam konfigurasi ini, arus positif                          dipaksa menyeberangi beban resistif untuk ketiga sumbu(axis).

1 0    =    Konfigurasi bias negatif untuk sumbu X, Y, Z. Dalam konfigurasi ini, Arus negatif dipaksa                  menyeberangi beban resistif untuk ketiga sumbu.

1 1    =    Belum ada konfigurasi untuk nilai bit ini.



Konfigurasi CRA4 - CRA2



2. Configuration Register B

Konfigurasi register B mengatur bagian penguatan. Untuk defaultnya, register ini bernilai 0x20.




CRB7 - CRB5    ---->   Bit konfigurasi penguat. Mengatur penguatan keluaran dari sensor.

CRB4 - CRB0    -----> Diberi nilai '0'(Tidak perlu diubah-ubah)

Nilai penguatan dari CRB7 - CRB5 sebagai berikut


3. Mode Register
Register 8 bit dari data yang mana dapat ditulis atau dibaca. Register ini digunakan untuk memilih mode yang akan dioperasikan.


Mode Operasi dari register MR1 - MR0



Baik, saya rasa penjelasan dasar tentang alamat register dan fungsi dasarnya cukup. Sekarang saatnya source code nya. Saya menggunakan arduino, bebas mau pakai arduino apa saja, yang terpenting tetap terhubung pada jalur I2C.








Dan hasilnya dapat dilihat di video saya. Maaf kalo videonya terbalik, hehehehehehehe


No comments:

Post a Comment