Kompas merupakan alat untuk navigasi untuk penunjuk arah, dalam blog ini menyajikan kompas magnetik sebagai penunjuk arah yang biasa di gunakan pada robot KRCI sebagai navigasi robot pada arah mana. Penggunaan kompas CMPS03 menggunakan jalur I2C.Mikrokontroller yang saya gunakan adalah AVR ATmega16 dan bahasa C.Beberapa komponen saya tambahkan dalam kompas ini untuk komunikasi kompas dengan mikrokontroller AVR ATmega16.modul kompas membutuhkan tegangan 5 V pada nominal 15mA karena menggunakan I2C kita menggunakan 5 jalur sajah yaitu :
1. VCC + 5 V pada pin 1
2. SCL dengan Full_Up resistor 10 K
3. SDA dengan pull_Up resistor 10 K
4. Calibrate pada PIN 6 yang terhubung swicth tactile
5. Ground pada PIN9
untuk melihat hasil pembacaan di tampilkan pada LCD 2×16 carakter pada PORT C. Nah jika sudah terhubung semuanya coba masukan program berikut ini :
#include …..
// I2C Bus functions
#asm
.equ __i2c_port=0×12 ;PORTD
.equ __sda_bit=0
.equ __scl_bit=1
#endasm
#include
// LM75 Temperature Sensor functions
#include
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm
#include
void convertToLCDStr(unsigned char inByte)
{
unsigned char data;
data = inByte / 100;
data+=0×30;
lcd_putchar(data);
inByte%=100;
data = inByte / 10;
data+=0×30;
lcd_putchar(data);
inByte%=10;
data = inByte + 0×30;
lcd_putchar(data);
}
void main(void)
{
// I2C Bus initialization
i2c_init();
// LCD module initialization
lcd_init(16);
while (1)
{
lcd_gotoxy(0,0);
i2c_start();
i2c_write(0xC0); // alamat CMPS03 & operasi tulis
i2c_write(1); // register 1 yang ingin diakses untuk bearing byte
i2c_start();
i2c_write(0xC1); // alamat CMPS03 & operasi baca
convertToLCDStr(i2c_read(0)); // baca tanpa sinyal ACK
i2c_stop();
};
}
Compile download kan ke Mikro AVR ATmega16 anda, lihat hasil yang di tampilkan pada LCD anda jika kurang cocok anda calibrate kompas dengan cara : kalibarasi CMPS03, agar benar sesuai dengan sudut data sheet maka arahkan pada utara
tekan swcth tictale dengan 4 arah yaitu Utara, Timur, selatan dan barat. masing dapat 1 kali swcith sajah. hasil kalibrasi akan di simpan di EEPROM kompas itu sendiri.Begitulah kira untuk bahasan sederhana kali ini untuk aplikasi pada robot agar lebih kompleks lagi akan saya bahas berikutnya.
salam kenal :)
BalasHapusthanks bos infonya :)
oh ya ditunggu kunjungan balik di blog ane ya, sekalian tukeran link yuk :)
artikel bagus bos.
BalasHapusijin bukmark :)
artikel great gan,,,
BalasHapusSalam kenal
BalasHapusartikel yang keren oom...
tapi itu "#include"-nya pakai library apa ya?
makasi nih infonya..
BalasHapusoh.. ribet juga ya..
BalasHapusnice content guys..
BalasHapusthat's EEPROM
BalasHapusmas bro, saya lg punya tugas, ttg kompas digital dgn outpuan suara dan k LCD , kira2 mas bro bs bantu g ??? klo bs blh mnta email atau no. hp ea... mksh
BalasHapusadd fb atau G+ sy aja mb...
Hapusmas, mau tanya, bedanya cmps03 dengan yang cmps10 apa? saya punya cmps10 untuk saya pakai di mikro atmega8535,dan saya punya program di atmeg16nya, klo untuk dipake di atmega8535 adakah perbedaan programnya? maklum mas masih nubi bngt nih
BalasHapusfb nya apa mas...?? aq mau tanya2 ni mas..
BalasHapus