dari laptop berupa karakter yang akan mengaktifkan atau menonaktifkan transmisi data dari mikrokontroler dan karakter untuk mengaktifkan motor penggerak.
Transmisi data dari mikrokontroler adalah data sensor CMPS10 dan H48C yang telah disusun formatnya. Penjelasan mengenai format dan penyusunan datanya
akan dijelaskan pada sub bab berikutnya.
4.2.6. Rangkaian pengendali on board
Sistem kendali
on board Gambar 55 terdiri dari modul DT-AVR Low
Cost Micro System, modul sensor CMP10, modul sensor H48C, sensor suhu DS1820, pengendali motor yang terdiri dari EMS 2A Dual H-Bridge dan EMS 5A
H-Bridge, dan catu daya yang terdiri dari adaptor 1A, adaptor 2A, dan adaptor 5A. Modul DT-AVR Low Cost Micro System berfungsi sebagai pengendali utama
sistem elektronik. Modul sensor CMPS10 berfungsi untuk mengukur arah, pitch, dan roll. Modul sensor H48C berfungsi untuk mengukur akselerasi. Sensor suhu
DS1820 berfungsi untuk mengukur suhu di dalam tabung kompartemen elektronik. EMS 2A Dual H-Bridge berfungsi sebagai saklar motor naik turun.
EMS 5A H-Bridge berfungsi sebagai saklar motor maju, mundur, belok kanan dan kiri.
Gambar 55. Penempatan komponen elektronik Adaptor 12V 5A
Adaptor 12V 2A Adaptor 12V 1A
EMS 5A H-BRIDGE EMS 2A DUAL H-BRIDGE
MODUL MIKROKONTROLER
CMPS 10
Masing-masing komponen dihubungkan dengan kabel. Kabel yang masuk ke dalam rangkaian ini adalah kabel VAC yang berfungsi sebagai catu daya.
Kabel yang keluar dari rangkaian ini adalah kabel TX-RX pengiriman dan
penerimaan data, Ground, kabel video 1 dan kabel video 2 Gambar 50. 4.3.
Program Mikrokontroler
Program mikrokontroler ini dibuat sesuai dengan spesifikasi mikrokontroler ATmega32A. Kode program yang disusun menggunakan Code
Vision AVR 2.05 Lampiran 11. 4.3.1. Inisialisasi dan konfigurasi mikrokontroler ATmega32A
Inisialisasi mikrokontroler
merupakan hal pertama yang harus dilakukan agar program dapat diunduh pada mikrokontroler dan dapat bekerja sesuai dengan
jenis mikrokontrolernya. Inisialisasi terdiri dari pemberian header files dari fungsi library yang sesuai kebutuhan dengan diawali “include”. “include
mega32a.h” berfungsi untuk mendefinisikan register input dan output IO untuk mikrokontroler ATmega32A. “include i2c.h” digunakan sebagai
bentuk dasar untuk fungsi I2C bus master. Fungsi ini dimasukkan setelah mendeklarasikan alamat IO dari Register Data Port dimana I2C Bus terkoneksi
dan Data Bits yang digunakan untuk SDA dan SCL. “include math.h” digunakan sebagai bentuk dasar untuk fungsi matematika. “include delay.h”
digunakan sebagai bentuk dasar dari penundaan waktu. “include 1wire.h” digunakan sebagai bentuk dasar untuk fungsi 1-Wire. “include ds1820.h”
digunakan sebagai bentuk dasar untuk menggunakan fungsi pengambilan data suhu dari sensor DS1820.
Konfigurasi mikrokontroler
dilakukan untuk mengaktifkan fitur-fitur yang
akan dipakai seperti komunikasi antarmuka I2C, 1-Wire dan USART untuk proses pengiriman dan penerimaan data. Konfigurasi komunikasi I2C ditulis dalam kode
program berikut:
as m . equ __i 2c _por t =0x 1B ; PORTA
. equ __s da_bi t =6 . equ __s c l _bi t =7
endas m
Konfigurasi komunikasi 1-Wire ditulis dalam kode program berikut:
as m . equ __w1_por t =0x 18; PORTB
. equ __w1_bi t =1 endas m
“asm” merupakan salah satu C prepocessor seperti “include”. “asm” ini diikutkan untuk mendefinisikan PORT dan bit yang digunakan untuk
komunikasi I2C dan 1-Wire. Konfigurasi fungsi USART terdiri dari beberapa bagian seperti USART Receiver Buffer, USART Receiver Interrupt Service
Routine, fungsi getchar fungsi untuk mendapatkan satu karakter dari laptop, fungsi putchar fungsi untuk memberikan satu karakter ke laptop, USART
Transmitter Buffer, dan USART Transmitter Interrupt Service Routine. Pengaktifan
fitur-fitur mikrokontroler seperti PORT IO dan USART
dilakukan di dalam bagian utama program yaitu “void main ”. Pengaktifan PORT dilakukan dengan menentukan lokasi alamat memori IO yaitu Data
Direction Register DDRx, Data Register PORTx, dan Port Input Pins PINx. DDxn bit pada DDRx Register menentukan fungsi pin tersebut. Logika 1
mengartikan bahwa pin pada PORT tersebut dikonfigurasikan sebagai output. Logika 0 berarti pin dikonfigurasikan sebagai input. Jika PORTxn ditulis dengan
logika 1 ketika pin dikonfigurasikan sebagai input, maka pull up resistor akan aktif. Pull up resistor akan tidak aktif jika PORTxn ditulis dengan logika 0. Jika
PORTxn ditulis dengan logika 1 ketika pin dikonfigurasikan sebagai output, maka PORT tersebut akan mengeluarkan tegangan sebesar 5 Volt tegangan kerja
mikrokontroler. Penulisan logika 0 akan menyebabkan PORT menjadi Ground. Pada program mini ROV ini, tiap-tiap PORT dikonfigurasikan sebagai
berikut:
PORTA=0x 00; DDRA=0x 00;
PORTB=0x 00; DDRB=0x FF;
PORTC=0x 00; DDRC=0x FF;
PORTD=0x 00; DDRD=0x 00;
DDRA dan DDRD dikonfigurasikan sebagai input karena pada penelitian ini tidak digunakan. DDR PORTB dan PORTC bernilai 0xFF mengartikan bahwa
semua pin pada PORT ini bertindak sebagai output. Hal ini dikarenakan pada kedua PORT ini digunakan untuk konfigurasi switching thruster.
Inisialisasi fitur USART ditulis pada kode berikut:
UCSRA=0x 00; UCSRB=0x D8;
UCSRC=0x 06; UBRRH=0x 00;
UBRRL=0x 19;
Inisialisasi ini memiliki arti bahwa mikrokontroler ini berkomunikasi dengan laptop pada baudrate 9600 kbps kilobyte per second dengan parameter
komunikasi: • 8 Data, 1 Stop, No Parity
• Penerima USART: aktif
• Pengirim USART : aktif • Mode USART: Asynchronous
4.3.2. Transmisi Data