Posts Tagged ‘harga sensor kompas CMPS-03’

Sensor Kompas Elektronik (CMPS-03)

Kompas Elektronik CMPS-03 buatan Devantech Ltd ini menggunakan sensor medan magnet Philips KMZ51 yang cukup sensitif untuk mendeteksi medan magnet bumi. Modul ini bekerja dengan mendeteksi magnetik bumi. Data yang dihasilkan dari kompas elektronik ini berupa data biner. Sebagai contoh jika modul menghadap utara maka data yang dihasilkan adalah data 00H, dan arah selatan data keluarannya adalah 7FH.

Koneksi dari modul ke mikrokontroller dapat dilakukan dengan 2 cara yaitu dengan mengunakan data PWM (Pulse Width Modulation), atau dengan I2C (Inter Intergrated Circuit). Jika menggunakan interface PWM, pulsa keluaran memiliki rentang 1mS untuk 0° atau arah utara sampai dengan 36.99 mS untuk 359.90°. Cara yang kedua mengunakan I2C, metode ini dapat digunakan langsung sehingga data yang dibaca tepat 0° – 360° sama dengan 0 – 255.

Gambar bentuk fisik dan koneksi pin modul kompas CMPS03

Modul kompas CMPS03 membutuhkan kalibrasi untuk menentukan nilai data keluaran dari tiap-tiap arah kompas. Metode kalibrasi dapat dilakukan secara manual, adapun cara kalibrasi sebagai berikut:

1. Modul kompas dihadapkan ke utara, kemudian memberikan pulsa rendah pada pin kalibrasi

2. Kompas diputar perlahan ke arah timur secara perlahan, kemudian pin kalibrasi diberi pulsa rendah

3. Langkah berikutnya memutar modul kompas ke arah selatan secara perlahan, kemudian memberikan pulsa rendah ke pin kalibrasi.

4. Langkah terakhir adalah memutar kompas ke arah barat dan kemudian memberikan pulsa rendah ke pin kalibarasi.

Program  akses Sensor Kompas (CMPS-03) dengan Bascom AVR

$regfile = “m8535.dat”
$crystal = 12000000

Config Scl = Portc.4
Config Sda = Portc.5

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.0

Dim Hi As Byte
Dim Lo As Byte
Dim Posisi As Integer

Cls
Cursor Off
Home
Lcd ”  Compass Demo  ”
Wait 2

Do

I2cstart
I2cwbyte &HC0
I2cwbyte &HC1
I2cstop

I2cstart
I2cwbyte &HC1
I2crbyte Hi , Ack
I2crbyte Hi , Ack
I2crbyte Lo , Nack
I2cstop

Posisi = Makeint(lo , Hi)

Lo = Posisi Mod 10

Posisi = Posisi / 10

Cls
Lcd “POSISI: ” ; Posisi ; “.” ; Lo ; “deg”
Lowerline
Lcd ”  by Fahmizal   ”
Waitms 500
Loop

End