Anda di halaman 1dari 4

Selamat sore pembaca setia RizRobot, apa kabar hari ini?

pasti baik dong :)


hari ini saya mau berbagi pengalaman lagi dalam pengguanaan Arduino Mega 2560, kali ini saya
mau berbagi tentang cara pengguanaan sensor Magnetic Compass CMPS03 yang harganya
cukup mahal yang bisa di lihat di sini (tempat saya biasanya belanja komponen soalnya di daerah
saya di Bangka Belitung masih susah cari komponen seperti sensor)

baiklah pertama-tama saya jelasin dulu apa itu CMPS03 ya bagi yang udah tau boleh di skip aja
:)
tapi kalau belum tau jangan abaikan materi ini soalnya penting banget

Magnetic Compass CMPS03 ini didesain khusus untuk bidang robotik untuk tujuan navigasi
robot. Kompas ini menggunakan dua sensor medan magnet KMZ51 buatan Philips yang cukup
peka untuk mendeteksi medan magnet bumi. Dua sensor ini dipasang saling bersilangan. Pada
modul kompas telah dipasang rangkaian pengkondisi sinyal dan mikrokontroler. Sehingga kita
dapat mengakses berapa derajat posisi kompas sekarang secara langsung.

berikut ini gambar sensor CMPS03 dan konfigurasi pin-pinnya :)

(klik gambar untuk memperbesar)

Penjelasan Pin-pin pada CMPS03

Pin Supply :
- Pin 1 : +5VDC
- Pin 0 : GND

Konsumsi arus sekitar 15mA

Pin No-Connect :
-Pin 5 & 8

Pin Output :
-Pin 2 & 3 : I2C, tanpa pull-up
-Pin 4 : PWM

Pin reduksi error :
-Pin 7 (Pull-up on-board untuk reduksi 60Hz, Beri logika low untuk reduksi 50Hz)

Pin kalibrasi:
-Pin 6 (Pull-up on-board)


Oke sekian penjelasan singkat tentang CMPS03
nah sebenarnya ada dua cara untuk memprogram sensor ini caranya yaitu:
1. Menggunakan sinyal PWM (pada pin 4 sensor)
2. Menggunakan Fungsi I2C (Inter-Integrated Circuit) (pada pin 2 (SCL) dan pin 3 (SDA))

tapi kali ini saya akan menjelaskan cara penggunaan menggunakan CMPS03 ini menggunakan
I2C pada arduino Mega 2050
dengan acuan diagram I2c Berikut ini


(klik gambar untuk memperbesar)


Oke langsung saja ya :)

Alat-alat yang di gunakan :
1. Sensor Magnetic Compass CMPS03 (1 buah aja ya mahal kalo banyak-banyak hehehe)
2. Arduino Mega 2560 (arduino lainnya juga boleh kok, ini cuma sebagai otaknya saja)
3. LCD 16x2 (untuk menampilkan nilai sensor, Kalau gakpunya LCD gunakan Serial Monitor
juga gak
apa-apa)
4. Resistor 1800 Ohm (1k8 Ohm) (sebagai pull up untuk I2Cnya)
4. Bread Board (disini saya mengunakan Bread board untuk mempermudah saja)
5. Kabel Jumper

oke sekarang susunlah rangkainnya (maaf gak ada gambarnya soalnya gak bisa buat di proteus
gak ada data library nya)
1. hubungkan VCC (5VDC) pada arduino pada Pin 1 Sensor CMPS03
2. hubungkan GND pada arduino pada Pin 9 Sensor CMPS03
3. hubungkan Pin SCL pada arduino ke pin 2 Sensor CMPS03
4. Hubungkan Pin SDA pada arduino ke pin 3 sensor CMPS03
5. hubungkan salah satu kaki resistor ke VCC (5VDC) dan kaki satunya di parallel kan antara
SCL arduino
dan SCL sensor CMPS03
6. hubungkan salah satu kaki resistor ke VCC (5VDC) dan kaki satunya di parallel kan antara
SDA
arduino dan SDA sensor CMPS03
7. hubungkan LCD pada pin-pin berikut ini

* LCD RS pin ke digital pin 22
* LCD Enable pin ke digital pin 23
* LCD D4 pin ke digital pin 24
* LCD D5 pin ke digital pin 25
* LCD D6 pin ke digital pin 26
* LCD D7 pin ke digital pin 27
* LCD R/W pin ke ground

* 10K variabe resistor:
- pin 1 ke +5V dan pin 3 ke ground
- pin 2 ke LCD VO pin (pin 3)

Oke bisa di mengerti?? Kalau belum mengerti silahkan komentar di bawah ya :) atau hubungi
saya di FB atau twitter

oke selanjutnya kita lanjutkan ke Program arduinonya ya :)

oke sekarang buka program arduinonya kemudian ketikkan kode di bawah ini

#include <Wire.h> //memangil fungsi I2C
#include <LiquidCrystal.h> //memangil fungsi LCD

#define addr 0x60 //Inisialisasi alamat register

LiquidCrystal lcd(22,23,24,25,26,27); //konfigurasi LCD

byte hb,lb; //variabel hb=highbyte, lb=lowbyte

void setup()
{
lcd.begin(16,2); //instalasi LCD 16x2
Wire.begin(); //memulai I2C
}

void loop()
{
Wire.beginTransmission(addr); //memulai transmisi dengan mengirim reg 0x60
Wire.write(2); //menuliskan nilai 2
Wire.endTransmission(); //mengakhiri transmisi
Wire.requestFrom(addr,2); //meminta data dari sensor
while(Wire.available()<2);
hb=Wire.read(); //membaca nilai highbyte dari sensor
lb=Wire.read(); //membaca nilai lowbyte dari sensor
int kompas =((hb<<8)+lb)/10; //kalkulasi untuk mendapatkan nilai dari sensor
lcd.setCursor(0,0); //mengatur koordinat lcd
lcd.print(kompas); //tampilkan nilai sensor pada lcd
delay(100); //tunda 100ms
}

Oke sekian dulu tutorial dari saya semoga dapat di mengerti dan berguna ya
oh iya Video hasil uji cobanya nanti saya posting disini sekarang belum sempet buat tapi tenang
aja ini sudah lolos uji coba kok oleh saya sendiri :)

dan ingat Untuk belajar selalu memulai dari nol dengan cara memahami setiap detail yang di
jelaskan jangan asal copy paste aja ya :)

Video dan file-filnya nanti meyusul ya :)


http://www.rizrobot.com/2014/02/tutorial-arduino-kontrol-sensor.html