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 :)
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
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 :)