Transmisi Data Pengambilan Nilai Arah, Pitch, dan Roll dari CMPS10

• Pengirim USART : aktif • Mode USART: Asynchronous

4.3.2. Transmisi Data

Pentransmisian data pada mini ROV ini dapat diaktifkan dan dinonaktifkan. Kode program diletakkan di dalam fungsi “while” sehingga selalu diulang. Pengaktifan transmisi dilakukan apabila karakter “a” dikirim ke mikrokontroler. Transmisi dinonaktifkan dengan mengirimkan karakter “s”. Karakter ini akan diterima oleh mikrokontroler dengan perintah “tele=getchar”. Pada saat karakter “a” dikirim maka transmisi akan aktif dan akan melakukan pengiriman data accelerometer, arah, pitch, roll, dan suhu. Format pengiriman data akan dibahas pada sub sub bab berikutnya. Kodenya seperti berikut: whi l e 1 { t el e=get c har ; i f t el e== a { as m c l i ; t r ans mi s i =1; as m s ei ; } i f t el e== s { as m c l i ; t r ans mi s i =0; put c har 13 ; put c har 10 ; as m s ei ; } }

4.3.3. Pengambilan Nilai Arah, Pitch, dan Roll dari CMPS10

Kompas CMP10 dihubungkan dengan mikrokontroler ATmega32A menggunakan komunikasi I2C. Pengambilan data CMPS10 untuk arah menggunakan kode program berikut: uns i gned c har c mps 10 c har r eg { i nt ni l ai ; i 2c _s t ar t ; i 2c _wr i t e 0x C0 ; i 2c _wr i t e r eg ; i 2c _s t ar t ; i 2c _wr i t e 0x C1 ; ni l ai =i 2c _r ead 0 ; i 2c _s t op ; r et ur n ni l ai ; } Proses pengambilan data CMPS10 dimulai dengan kode “i2c_start”. Kode ini memerintahkan mikrokontroler untuk memulai komunikasi I2C. “i2c_write0xC0” akan memerintahkan mikrokontroler untuk menulis kode heksadesimal C0 pada alamat modul kompas, kemudian menulis register yang diinginkan pada kode “i2c_writereg”. Register ini sesuai dengan Tabel 1. Selanjutnya diikuti dengan start bit lagi. Penulisan alamat modul kompas dilakukan dengan kode heksadesimal C1 yang berarti readwrite high. Perintah berikutnya ialah “i2c_read0”. Mikrokontroler akan membaca data yang keluar dari modul kompas CMPS10 tanpa adanya ack acknowledgement. “i2c_stop” memerintahkan mikrokontroler untuk menghentikan komunikasi I2C. Data yang terbaca akan tersimpan pada variabel “nilai”.

4.3.4. Pengambilan Nilai Accelerometer dari H48C