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.