Anda di halaman 1dari 17

MIKROKONTROLLER Mikrokontroller adalah piranti elektronik berupa IC (Integrated Circuit) yang memiliki kemampuan manipulasi data (informasi) berdasarkan

suatu urutan instruksi (program) yang dibuat oleh programmer. Mikrokontroller merupakan contoh suatu sistem komputer sederhana yang masuk dalam kategori embedded komputer. Dalam sebuah struktur mikrokontroller akan kita temukan juga komponen-komponen seperti: processor, memory, clock dll.

Gambar 1.2: contoh beberapa bentuk mikrokontroller ATMEL

Kegiatan desain otomasi merupakan kegiatan memetakan sinyal input menjadi sinyal output berdasarkan suatu fungsi kontrol agar bisa dimanfaatkan sesuai kebutuhan. Sasaran dari pelatihan ini adalah peserta mampu menggunakan mikrokontroller untuk membangun sendiri suatu sistem otomasi atau embedded system.

ATMEL AVR ATMEGA8535 Sebelum belajar lebih dalam tentang aplikasi mikrokontroller, ada baiknya kita bicarakan dulu tentang mikrokontroller yang kita gunakan. Pada pelatihan ini dipilih mikrokontroller jenis ATMEL AVR RISC dengan pertimbangan sebagai berikut:

a. ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga yang relatif murah.

b. Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS (Million Instruction per Second), yang berarti hanya dibutuhkan 1 clock untuk 1 eksekusi instruksi. c. Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi. d. Ketersediaan kompiler C (CV AVR) yang memudahkan user memprogram menggunakan bahasa C. Berikut tabel perbandingan kecepatan processor dan efisiensi eksekusi beberapa mikrokontroller,

Tabel 1.1: perbandingan kecepatan processor dan efisiensi

Dari tabel diatas dapat dilihat, ketika bekerja dengan kecepatan clock yang sama AVR 7 kali lebih cepat dibandingkan denga PIC16C74, 15 kali lebih cepat daripada 68 HC11, dan 28 kali lebih cepat dibanding 8051. Dari kemampuan dan fasilitas yang dimiliki, AVR RISC cocok dipilih sebagai mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem. Oleh karena itu, dalam pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar pelatihan yaitu ATMEGA 8535. Chip AVR ATMEGA8535 memiliki 40 pin kaki, berikut skema kaki AT MEGA8535,

Gambar 1.3: skema mikrokontroller AVR RISC ATMEGA8535

ATMEGA8535 memiliki 4 buah port input/output 8 bit, yaitu PORTA, PORTB, PORTC, dan PORTD. Selain sebagai input/output masing masing port juga memiliki fungsi yang lain. PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter), PORTB dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication. Fungsi-fungsi yang lain dapat dilihat pada datasheet ATMEGA8535.

PEMROGRAMAN ATMEL AVR Ada 2 cara untuk memprogram mikrokontroller ini, menggunakan software AVR assembler yang berbasis pada bahasa assembly, dan menggunakan software CV AVR (Code Vision AVR) yang berbasis pada bahasa C. Pada pelatihan ini akan digunakan cara yang kedua dengan pertimbangan kemudahan pembuatan program dari algoritma yang telah dibangun. Pelatihan ini tidak menitikberatkan penggunaan bahasa C pada CV AVR, tapi lebih pada cara dan aplikasi dari mikrokontroller. Untuk itu peserta diharapkan membaca sendiri petunjuk pemakaian software ini. Berikut tampilan utama CVAVR,

Gambar 1.4: tampilan utama CV AVR

Untuk dapat menyimpan program yang telah kita buat pada memory mikrokontroller dibutuhkan perangkat tambahan yang menghubungkan antara PC dan mikrokontroller. Perangkat interface ini disebut isp_dongle yang menghubungkan port parallel PC dan port SPI (Serial Peripheral Interface) mikrokontroller.

Gambar 1.5: Isp dongle dan Skema rangkaiannya (dicopy dari buku bamec).

Untuk

memaksimalkan

pemanfaatan

fasilitas

mikrokontroller

MAX-TRON

telah

mengembangkan board dan peripheral pendukung yang dapat digunakan untuk membangun bermacam-macam aplikasi sistem digital. Salah satunya adalah Universal controller board M.B.3.2, board yang dilengkapi dengan komponen-komponen tambahan pendukung kerja mikrokontroller. Berikut data Universal board M.B.3.2,

MAX-TRON M.B.3.2 Universal Controller Board Feature: High-performance, low power AVR ATMEGA8535 8 bit mikrocontroller 4 bidirection port 8 channel ADC 2 channel servo motor controller 2 channel max-tron H-bridge controller Master/Slave SPI serial interface Serial USART interface Operating voltage 9 V 35 V

PIN Description

Gambar 1.6: skema pin universal board M.B.3.2

INPUT/OUTPUT Fasilitas input/output merupakan fungsi mikrokontroller untuk dapat menerima sinyal masukan (input) dan memberikan sinyal keluaran (output). Sinyal input maupun sinyal output adalah berupa data digital 1 (high, mewakili tegangan 5 volt) dan 0 (low, mewakili tegangan 0 volt). Mikrokontroller ATMEGA8535 memiliki 4 buah PORT 8 bit bidirectional yang dapat difungsikan sebagai PORT input maupun PORT output yaitu PORTA, PORTB , PORTC, dan PORT D. Register digunakan untuk mengatur fungsi dari pin-pin pada tiap port. Register dapat dianalogikan sebagai kumpulan switch on/off yang digunakan untuk mengaktifkan fungsi apa yang akan dipakai dari port mikrokontroller. Pada setiap port pin terdapat 3 buah register 8 bit: DDRxn, PORTxn, dan PINxn. Register DDRxn digunakan untuk menentukan arah dari pin yang bersangkutan. Jika DDRxn diberikan nilai 1 (high), maka pin digunakan sebagai output. Jika DDRxn diberikan nilai 0 (low), maka pin difungsikan sebagai input. Register PORTxn digunakan untuk mengaktifkan pull-up resistor (pada saat pin difungsikan sebagai input), dan memberikan nilai keluaran pin high/low (pada saat difungsikan sebagai output). Konfigurasi PORTxn dan DDRxn dapat dilihat pada tabel dibawah,

Tabel 2.1: konfigurasi port pin Tri-state adalah kondisi diantara high dan low, atau biasa disebut dengan keadaan mengambang (floating). Kondisi tri-state sangat dihindari dalam dunia digital. Terlepas dari setting DDRxn, PINxn merupakan register yang berfungsi untuk mengetahui keadaan tiap-tiap pin pada mikrokontroller. Register ini sangat dibutuhkan untuk membaca keadaan pin pada saat difungsikan sebagai input.

PERANGKAT KERAS Perangkat keras yang dibutuhkan untuk mendemonstrasikan aplikasi input/output adalah sebagai berikut: ATMEGA8535 universal board + isp_dongle.

Gambar 2.1: ATMEGA8535 universal board

Led Array (output indicator)

Gambar 2.2: skema led output indicator (dicopy dari buku bamec).

Push-button array (input signal)

Gambar 2.3: skema input push-button (dicopy dari buku bamec).

led array dan push-button array telah dibuat dalam 1 board input output-seperti pada gambar berikut,

Gambar 2.4: MAX-TRON input/output board M.B.3.6

APLIKASI PRAKTIK Berikut adalah beberapa aplikasi praktik yang nantinya dapat lebih menjelaskan fungsi dan fasilitas input/output. Peserta diharapkan mengikuti petunjuk langkah demi langkah.

APLIKASI 1: OUTPUT Setting Hardware:

1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/outputboard) menggunakan kabel pita. 2. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader. 3. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala. Programming:

1. Buka CV AVR., pilih File->New->Project. 2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR. 3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz.

4. Klik tab Ports, pilih tab Port C seperti pada gambar, ubah setting bit 0 bit 7 sebagai out.

Hasil setting ini berpengaruh pada nilai register DDRxn, dan PORTxn. 5. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit. 6. Buat direktori dengan nama io1. 7. Save file CV AVR dengan nama io1.cwp pada direktori io1. 8. Save file .C dengan nama io1.c pada direktori io1. 9. Save file project dengan nama io1.prj pada direktori io1.

Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan memilih menu project >> configure. 2. Pilih tab after make, aktifkan program the chip. Terlihat tampilan seperti pada gambar dibawah,

setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita selesai Make Project File. Listing Program

1. Sekarang perhatikan kode bahasa C pada bagian setting register DDRxn, dan PORTxn, tampak sebagai berikut,

DDRC = 0xFF yang berarti 8 bit port C difungsikan sebagai output. PORTC = 0x00 berarti nilai awalan output adalah 0(low). 2. Nilai register PORTC diatas adalah nilai awalan pada saat mikrokontroller start-up, kita bisa mengubah nilai output port C dengan mengubah nilai register PORTC pada looping while.

PORTC = 0xCD, nilai output port C adalah CD dalam bentuk hexa atau 11001101 dalam bentuk biner. 3. Program chip dengan memilih menu Project >> Make atau dengan menekan shift + F9. Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

4. Klik Program, jika ada kesalahan periksa kembali setting hardware. 5. Perhatikan led array, lampu led akan menyala 11001101 jika diurut dari Port7- Port0. 6. Ulangi langkah 2 sampai 6 dengan memberikan nilai PORTC yang berbeda beda pada looping while. Perhatikan perubahan nyala led pada led array.

APLIKASI 2: INPUT Setting hardware:

1. Hubungkan PORTC universal board dengan led array (port OUTPUT pada input/output board ) menggunakan kabel pita. 2. Hubungkan PORTB universal board dengan push button array (port INPUT pada input/output board ) menggunakan kabel pita.

3. Hubungkan SPI port pada universal board dengan port parallel PC menggunakan downloader. 4. Hidupkan saklar power, led power pada universal board harus dalam keadaan nyala. Programming:

1. Buka CV AVR., pilih File->New->Project. 2. Klik YES ketika terdapat option untuk meggunakan codeWizardAVR. 3. Pilih chip yang akan digunakan ATMEGA8535 dengan harga clock 16 Mhz. 4. Setting port C sebagai output (out). 5. Setting port B sebagai Input (in) dan aktifkan pull-up resistor. (lihat gambar)

6. Setting selesai, untuk mengenerate program pilih File >> Generate, Save, and Exit. 7. Buat direktori dengan nama io2. 8. Save file CV AVR dengan nama io2.cwp pada direktori io2. 9. Save file .C dengan nama io2.c pada direktori io2. 10. Save file project dengan nama io2.prj pada direktori io2.

Project Setting

1. Terlihat pada tampilan CV AVR kode yang telah digenerate. Konfigurasi project dengan memilih menu project >> configure. 2. Pilih tab after make, aktifkan program the chip.

setting ini akan membantu kita mengotomasi untuk langsung memrogram chip ketika kita selesai Make Project File. Listing Program

1. Perhatikan setting register port B dan port C.

Port B difungsikan sebagai input (DDRB = 0x00) dengan 8 bit pull-up resistor diaktifkan (PORTB=0xFF). Port C difungsikan sebagai output (DDRC=0xFF) dengan nilai awalan pada tiap bit 1 (high).

2. Pada listing kode diatas kita telah men-set port B sebagai input dengan pull-up resistor dan port C sebagai output. Untuk dapat menunjukkan funggsi input mikrokontroller tambahkan listing kode berikut pada bagian looping while.

maksud dari listing program diatas adalah kita menscan register PINB terus menerus dari PINB.0 PINB.7. Perhatikan bahwa untuk membaca perubahan keadaan input dari pushbutton dibaca pada register PINxn bukan pada register PORTxn maupun DDRxn. 3. Program chip dengan memilih menu project >> make atau dengan menekan shift + F9. Jika pada kode masih terdapat kesalahan/error akan terlihat pada message.

4. Klik Program, jika ada kesalahan periksa kembali setting hardware. 5. Jika langkah langkah diatas telah dilakukan dengan benar, maka led pada port C akan menyala sesuai dengan push-button yang ditekan pada port B.

EXERCISE Buatlah program aplikasi agar lampu led pada input/output-board menyala berkelap kelip dengan selang waktu tertentu. Gunakan pengarah preprocessor delay.h dengan mengetikkan #include<delay.h>.

TUGAS MEKATRONIKA

Oleh : Erwin Timbayo Sule D211 07 107

JURUSAN MESIN FAKULTAS TEKNIK UNIVERSITAS HASANUDDIN MAKASSAR 2012