Anda di halaman 1dari 31

BAB II

TEORI DASAR

Pada bab ini dibahas tentang mekatronika, robotika, beberapa komponen


robotika, dan bahasa C. Komponen robotika yang dibahas meliputi: motor servo,
sensor GP2D12 dan mikrokontroler ATMEGA 8535,.

2.1 Mekatronika
Istilah Mechatronik (Mechanical Engineering-Electronic Engineering)
pertama kali dikenalkan pada tahun 1969 oleh perusahaan jepang Yaskawa
Electric Cooperation.
Mekatronik adalah merupakan gabungan antara Mekanika, ilmu
Elektronika dan Informatika. Sekarang kita sering melihat di sekeliling kita
barang-barang mekatronik seperti robot, mesin bubut NC, kamera digital, printer
dan lain sebagainya. Persamaan dari barang-barang mekatronik ini adalah bahwa
objek yang dikendalikan adalah gerakan mesin.
Persamaan prinsip dari barang-barang mekatronik ini adalah bahwa objek
yang dikendalikan adalah gerakan mesin. Jika dibandingkan dengan gerakan
mesin konvensional maka gerakan mesin tersebut lebih bersifat fleksibel dan lebih
memiliki kecerdasan. Hal ini dimungkinkan karena memanfaatkan kemajuan
bidang micro-electronics. Yang berarti, dengan bantuan peralatan micro-
electronics mesin dapat bergerak dengan lebih cerdas. Jika seseorang memberikan
sebuah perintah, lalu semua dapat dipasrahkan ke mesin yang dapat bergerak
secara otomatis. Ini sangat membantu menciptakan mesin atau alat yang praktis
dan mudah digunakan. Sehingga sumber daya pada manusia seperti waktu dan
otak dapat dipakai untuk pekerjaan yang lain untuk lebih menciptakan nilai
tambah.

4
5

Terdapat beberapa faktor yang menyebabkan timbulnya bidang


mekatronika. Faktor-faktor tersebut adalah:
a. Kemajuan pada bidang semikonduktor dan fabrikasi IC, yang
mengarahkan perkembangan pada produk baru dengan cara
mengintegrasikan sistem mekanik dan elektronik
b. Perkembangan teknologi komputer (microcomputer, embedded
computer), teknologi informasi dan perancangan perangkat lunak
sehinggga menjadikan mekatronika sebagai leading technology pada abad
ke-21 ini.
Secara sedehana pembentukan ilmu mekatronika terdiri atas dua lapisan
ilmu dasar, yaitu: fisika dan logika serta tiga ilmu utama, yaitu: elektronika,
informatika dan mekanika. Dengan melihat asal katanya dapat dengan mudah
dipahami, bahwa ilmu ini menggabungkan atau mensinergikan disiplin ilmu
Mekanika, ilmu Elektronika dan Informatika.

Gambar 2.1 Ilustrasi Asal Ilmu Mekatronika

2.1.1. Definisi
Menurut IEEE (IEEE Mechatronics Transaction, 1996), definisi
mekatronika adalah sebagai berikut: Mechatronics is the synergistic integration of
mechanical engineering with electronics and intelligent computer control in the
design and manufacturing of industrial products and processes. Definisi ini
dilengkapi dengan ilustrasi perkembangan mekatronika dalam bentuk diagram,
seperti yang dapat dilihat pada Gambar berikut.
6

Gambar 2.2 Definisi dan Keterkaitan Ilmu di Mekatronika

Sementara itu, berdasarkan hasil Musyawarah Nasional Mekatronika di


Bandung 28 Juli 2006, Komunitas Mekatronika Indonesia merekomendasikan
definisi Mekatronika sebagai berikut: Mekatronika adalah sinergis iptek teknik
mesin, teknik elektronika, teknik informatika dan teknik pengaturan (atau teknik
kendali) untuk merancang, membuat atau memproduksi, mengoperasikan dan
memelihara sebuah sistem untuk mencapai tujuan yang diinginkan.
Dari definisi-definisi di atas, dapat disimpulkan beberapa bidang ilmu
yang menyumbangkan peranannya dalam perkembangan ilmu mekatronika,
adalah:
a. Sistem Mekanika
b. Sistem Elektronika
c. Sistem Kontrol, dan
d. Sistem Komputer
Penggabungan beberapa bidang di atas, menghasilkan beberapa ilmu baru,
yaitu: Elektro-mekanika yang merupakan penggabungan ilmu mekanika dan
elektronika, Kontrol Elektronika yang memadukan ilmu elektronika dengan
sistem kontrol, Sistem Kontrol Digital yang mempertemukan ilmu sistem kontrol
dengan sistem komputer dan Mekanika CAD (Computer Aided Design) yang
merupakan perpaduan ilmu mekanika dengan sistem komputer. Kemudian,
integrasi keseluruhan ilmu tersebutlah yang menjadi akar dari perkembangan
bidang mekatronika.
Sistem mekatronika terdiri dari beberap bagian sebagaimana digambarkan
dalam blok diagram Sistem Mekatronik di Gambar 2.3. Dari gambar tersebut,
7

sistem mekatronika terdiri dari: Aktuator, Sensor, Pengkondisian Signal dan


Antarmuka, Pengendalian serta Display.
Pertama adalah blok Aktuator. Aktuarot merupakan unsur penggerak
sistem mekanik dari keseluruhan sistem. Sistem ini terdiri dari motor-motor,
solenoida, dan komponen-komponen penggerak lainnya, baik yang digerakkan
oleh elektronik, hidrolik atau pneumatik.

Gambar 2.3 Blok Diagram Sistem Mekatronika

Setelah itu, terdapat blok Pengkondisian Signal dan Antarmuka. Blok ini
terdapat pada bagian input dan juga output sebuah sistem. Setiap signal yang
masuk akan dikondisikan sehingga dapat diproses oleh sistem dan akan
dikondisikan kembali agar dapat ditampilkan kepada dalam bentuk output kepada
pengguna. Dari blok satu ke blok yang lain, terjadi pengkondisian signal, sehingga
seluruh sistem dapat berjalan dengan baik. Blok yang merupakan blok utama
dalam sistem mekatronika adalah blok Pengendalian. Blok ini berintikan sebuah
sistem pengendalian, yang pada umumnya menggunakan peralatan digital, seperti
Personal Computer (PC), Programmable Logic Controller (PLC), mikroprosesor
dan sejenisnya. Pengendali akan bekerja seperti otak manusia, dimana ia
menerima hasil bacaan lingkungan dan perintah dari pengguna, mengolahnya dan
menghasilkan respon dan keluaran yang sesuai dengan kehendak pengguna.
Terakhir, blok yang amat dekat dengan pengguna adalah blok penampil (Display).
Blok ini merupakan antarmuka antara pengguna dengan keseluruhan sistem
mekatronika, sehingga pengguna dapat melihat apa yang terjadi di dalam sistem
8

dan menganalisa keluaran dari sistem tersebut. Blok Pengkondisian Signal dan
Antarmuka, Blok Pengendali dan Blok Display merupakan blok-blok pembentuk
sistem elektronika dari keseluruhan sistem mekatronika yang ada.
Beberapa manfaat penerapan mekatronik adalah sebagai berikut:
• Meningkatkan fleksibilitas
• Meningkatkan kehandalan
• Meningkatkan presisi dan kecepatan

2.1.2 Aplikasi Mekatronika


Begitu banyaknya penggunaan sistem mekatronika dalam kehidupan.
Beberapa bidang yang merupakan perkembangan teknologi metaronika adalah:
• Otomotif
• Aerospace
• Medikal
• Xerografi
• Sistem Pertahanan
• Produk-produk Konsumen
• Manufaktur
• Pemprosesan Material
Beberapa contoh dari aplikasi mekatronika adalah sebagai beriku.
a. Teknik Otomotif
Sebagai contoh sistem mekatronik pada kendaraan bermotor adalah sistem
rem ABS ( Anti-lock Breaking system) atau sistem pengereman yang menghindari
terkuncinya roda sehingga mobil tetap dapat dikendalikan dalam pengereman
mendadak,
b. Teknologi Penerbangan
Dalam teknologi penerbangan modern digunakan Comfort-In-Turbulence System
sehingga dapat meningkatkan kenyamanan penumpang walau ketika terjadi
turbulensi. Gust Load Alleviation
c. Teknik Produksi
Teknik produksi adalah penggunaan sensor pada robot. Sistem kendali
umpan balik pada elektromotor berkecepatan rotasi tinggi dengan tenaga magnet.
9

2.2 Robotika
Robot adalah sebuah alat elektro-mekanik yang dapat melakukan tugas
fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan
program yang telah didefinisikan terlebih dulu melalui kecerdasan buatan. Robot
biasanya digunakan untuk tugas yang berat, berbahaya, pekerjaan yang berulang
dan kotor. Biasanya kebanyakan robot industri digunakan dalam bidang produksi.
Penggunaan robot lainnya termasuk untuk pembersihan limbah beracun,
penjelajahan bawah air dan luar angkasa, pertambangan, pekerjaan "cari dan
tolong" (search and rescue), dan untuk pencarian tambang. Belakangan ini robot
mulai memasuki pasaran konsumen di bidang hiburan, dan alat pembantu rumah
tangga, seperti penyedot debu, dan pemotong rumput.
Kata robot berasal dari kata robota terdapat pada sebuah teater fiksi sains
berjudul Rossum’s Universal Robots (RUR), karya Karel Capek dari Czech
(1921) yang berarti bekerja atau pekerja. Kemudian, istilah robot berkembang
dari waktu ke waktu sesuai dengan teknologi yang berkembang. Ada beberapa
sifat dan karakteristik robot, adalah:
• bergerak tanpa harus dikendalikan langsung oleh manusia
• bergerak secara multi-aksis (rotasi dan translasi)
• dapat diprogram ulang
• dapat mengambil keputusan tertentu secara otomatis
• dapat berinteraksi, mengambil informasi dan memanipulasi lingkungannya
• memiliki sistem kecerdarasan buatan
Untuk menghindari hal-hal yang dikhawatirkan oleh manusia akibat
‘perkembangan’ yang pesat dari robot, maka sejak awal telah dibuat Tiga Hukum
Robot. Tiga Hukum Robot dalam genre cerita fiksi ilmiah adalah tiga buah
peraturan yang ditulis oleh Isaac Asimov, yang harus dipatuhi oleh hampir semua
robot-robot positroniknya, yang terdapat dalam karya-karya cerita fiksinya. Tiga
Hukum Robot pertama kali diperkenalkan secara lengkap pada tahun 1942 dalam
cerita pendek "Runaround", yang menyatakan sebagai berikut:
1. Robot tidak boleh melukai manusia, atau dengan berdiam diri,
membiarkan manusia menjadi celaka (A robot may not injure a human
being or, through inaction, allow a human being to come to harm).
10

2. Robot harus mematuhi perintah yang diberikan oleh manusia kecuali bila
perintah tersebut bertentangan dengan Hukum Pertama (A robot must obey
orders given to it by human beings except where such orders would
conflict with the First Law).
3. Robot harus melindungi keberadaan dirinya sendiri selama perlindungan
tersebut tidak bertentangan dengan Hukum Pertama atau Hukum Kedua (A
robot must protect its own existence as long as such protection does not
conflict with the First or Second Law).

2.2.1 Konstruksi Robot


Terdapat berbagai macam jenis robot. Pada umumnya, robot
diklasifikasikan terdiri dari 2 (dua) jenis, yaitu: robot industri (industrial robot)
dan robot bergerak (mobile robot). Klasifikasi ini dilihat dari sisi perkembangan
dan struktur robot tersebut.
Robot industri adalah robot yang awal-awal dibangun oleh para peneliti.
Robot ini memiliki ciri khas sebagai berikut:
• Banyak didominasi oleh sistem mekanikal
• Konstruksi dasar (base) robot tetap (stationary) berbentuk tangan manusia
• Menggunakan sensor yang jumlah dan variasi terbatas
• Menggunakan sistem mikroprosesor dan dapat diprogram ulang
Sedangkan robot bergerak adalah kelanjutan dari proses pembangungan
robot. Robot bergerak ini memiliki ciri khas sebagai berikut:
• Banyak didominasi oleh sistem elektrik
• Konstruksi dasar (base) robot yang bergerak dan beroda atau berkaki
• Menggunakan sensor yang banyak jumlah dan variasinya
• Menggunakan sistem mikroprosesor yang memiliki kecerdasan buatan

2.2.2 Robot Industri


Robot industri merupakan robot yang pertama-tama dibangun oleh para
peneliti.Terdapat beberapa jenis robot industri berdasarkan areal kerjanya
(envelope work), yaitu: rectangular coordinate robot, cylindrical coordinate
11

robot, sperical coordinaet robot, articulate arm robot, gantry robot dan scara
robot, sebagaimana yang tampak pada Gambar berikut.

Gambar 2.4 Robot Industri


2.2.3 Robot Beroda
Ketika para pencipta robot pertama kali mencoba meniru manusia dan
hewan, mereka menemukan bahwa hal tersebut sangatlah sulit; membutuhkan
tenaga penghitungan yang jauh lebih banyak dari yang tersedia pada masa itu.
Jadi, penekanan perkembangan diubah ke bidang riset lainnya. Robot sederhana
beroda digunakan untuk melakukan eksperimen dalam tingkah laku, navigasi, dan
perencanaan jalur. Teknik navigasi tersebut telah berkembang menjadi sistem
kontrol robot otonom yang tersedia secara komersial.
Robot Beroda atau Wheeled Mobile Robot adalah konstruksi robot yang
ciri khasnya mempunyai aktuator berupa roda untuk menggerakkan keseluruhan
badan robot tersebut, sehingga robot tersebut dapat melakukan perpindahan posisi
dari satu titik ke titik yang lain. Robot beroda ini sangat disukai bagi orang yang
mulai mempelajari robot. Hal ini karena membuat robot mobil tidak memerlukan
kerja fisik yang berat. Untuk dapat membuat sebuah robot beroda minimal
diperlukan pengetahuan tentang mikrokontroler dan sensor-sensor elektronik.
12

Gambar 2.5 Robot Beroda

2.2.4 Robot Berkaki


Ketika para teknisi siap untuk mencoba robot berjalan kembali, mereka
mulai dengan heksapoda dan platform berkaki banyak lainnya, yang dikenal
dengan istilah Legged Robot. Robot-robot tersebut meniru serangga dan
arthropoda dalam bentuk dan fungsi. Tren menuju jenis badan tersebut
menawarkan fleksibilitas yang besar dan terbukti dapat beradaptasi dengan
berbagai macam lingkungan, tetapi biaya dari penambahan kerumitan mekanikal
telah mencegah pengadopsian oleh para konsumer. Dengan lebih dari empat kaki,
robot-robot ini stabil secara statis yang membuat mereka bekerja lebih mudah.
Prinsip robot berkaki dapat dilihat pada Gambar 2.6 di bawah ini.

Gambar 2.6 Robot Berkaki

Kelebihan robot ini dibanding dengan robot beroda adalah kemampuannya


berjalan di berbagai permukaan. Sehingga, untuk penggunaan di permukaan yang
tidak datar, seperti berbatu, berumput, berpasir dan permukaan yang tidak
terkirakan sebelumnya, digunakan robot berkaki.

2.2.5 Humanoid
Robot bergerak yang kesulitannya tinggi adalah robot berkaki dua, atau
dikenal dengan istilah humanoid, karena mirip seperti manusia. Tujuan dari riset
13

robot berkaki dua adalah mencapai gerakan berjalan menggunakan gerakan pasif-
dinamik yang meniru gerakan manusia. Kesulitannya adalah disamping harus
mengatur gerakan agar robot dapat berjalan dengan baik juga harus
diperhitungkan keseimbangan dan kestabilan robot yang terus berubah, termasuk
sumber daya yang harus disiapkan secara ringan untuk dapat dibawa oleh robot.
Hingga saat ini telah terdapat beberapa humanoid yang ditampilkan oleh
beberapa industri. Salah satu humanoid yang cukup terkenal adalah ASIMO yang
telah memiliki beberapa versi. Contoh humanoid dapat dilihat pada Gambar 2. 9.

(a) (b) (c)


Gambar 2.7 Humanoid : (a) Prinsip, (b) dan (c) Versi-versi Humaniod

2.3 Komponen Robotika


Komponen yang digunakan pada tugas akhir ini meliputi sensor sharp
GP2D12, motor servo dan mikrokontroller atmega 8535.

2.3.1 Motor Servo


Motor Servo terdiri dari sebuah motor DC, serangkaian gear, sebuah
potensiometer, sebuah output shaft dan sebuah rangkaian kontrol elektronik.
Biasanya, motor servo berbentuk kotak segi empat dengan sebuah output
shaft motor dan konektor dengan 3 kabel yaitu power, kontrol dan ground. Gear
motor servo ada yang terbuat dari plastic, metal atau titanium. Didalam motor
servo terdapat potensiometer yang digunakan sebagai sensor posisi. Potensiometer
tersebut dihubungkan dengan output shaft untuk mengetahui posisi aktual shaft.
14

Ketika motor dc berputar, maka output shaft juga berputar dan sekaligus
memutar potensiometer. Rangkaian kontrol kemudian dapat membaca kondisi
potensiometer tersebut untuk mengetahui posisi aktual shaft. Jika posisinya sesuai
dengan yang diinginkan, maka motor dc akan berhenti. Sudut operasi motor servo
(Operating Angle) bervariasi tergantung jenis motor servo. Ada 2 jenis motor
servo yaitu :
• Motor Servo Standard
Yaitu motor servo yang mampu bergerak CW dan CCW dengan sudut operasi
tertentu, misalnya 600, 900 atau 1800.
• Motor Servo Continuous
Yaitu motor servo yang mampu bergerak CW dan CCW tanpa batasan sudut
operasi (berputar secara kontinyu).

Gambar 2.8 Motor Servo

Motor servo dikendalikan dengan cara mengirimkan sebuah pulsa yang


lebar pulsanya bervariasi. Pulsa tersebut dimasukkan melalui kabel kontrol motor
servo. Sudut atau posisi shaft motor servo akan diturunkan dari lebar pulsa.
Biasanya lebar pulsanya antara 1.1 ms sampai 1.9 ms dengan periode pulsa
sebesar 20 mS. Motor servo standar hanya menetap di posisi tertentu sesuai
dengan lebar pulsa sinyal kendali yang diberikan padanya. Jangkauan gerak motor
ini hanya 180 O. Contoh bentuk sinyal kendali motor servo adalah sebagai berikut
:
15

P o s is i S u d u t P o s is i S u d u t P o s is i s u d u t
p o ro s P o ro s P o ro s

2 0 . 0 0 0 M ik r o 2 0 . 0 0 0 M ik r o
second second

Gambar 2.9 Contoh sinyal kendali dengan perioda 20 ms

Untuk mengetahui lamanya pemberian pulsa per siklus yang diperlukan


untuk menggerakkan motor servo pada sudut tertentu maka perlu dilakukan
beberapa tahapan. Tahapan yang pertama adalah mencari tahu berapa lama
pemberian pulsa per siklus yang diperlukan untuk menggerakkan motor servo ke
posisi 0O dan posisi 180O. Setelah lamanya pulsa per siklus untuk kedua sudut itu
diketahui, langkah selanjutnya adalah mencari tahu lamanya pulsa per siklus yang
dibutuhkan untuk menggerakkan motor servo ke posisi (sudut) lainnya. Untuk
motor servo ini, tidak diperlukan rangkaian driver khusus, cukup catu daya 5 volt
DC dan sebuah sinyal kendali dengan periode konstan dan beragam duty cycle.

2.3.2 Sensor Jarak GP2D12


GP2D12 adalah sensor pengukur jarak yang diproduksi oleh Sharp. Sensor
ini mengeluarkan sinyal analog dan mampu mengukur jarak pada rentang 10 – 80
cm. Prinsip kerja sensor inframerah ini dalam mengukur jarak berbeda dengan
sensor ultrasonik yang menggunakan waktu pantul gelombang bunyi karena
waktu pantul cahaya jelas terlalu singkat untuk dapat diukur. Cahaya inframerah
dengan frekuensi 40 kHz dipancarkan dan hasil pantulannya diterima oleh
susunan detektor inframerah. Sudut pantulan sinar inframerah akan berubah sesuai
jarak sensor dan obyek.

Gambar 2.10 Sensor Jarak GP2D12


16

¾ Fetures / keistimewaan
• Tidak terpengaruh oleh warna
• Jarak deteksi 1- sampai 80 cm
• Tidak membutuhkan kendali / kontrol dari luar
• Output analog

¾ Outline dimension / dimensi secara garis besar

Gambar 2.11 Outline Dimension

GPD2D12 merupakan salah satu sensor jarak dengan keluaran tegangan


analog. Jarak yang bisa dideteksi GPD2D12 mulai dari 8cm sampai 80cm,
sedangkan tegangan yang dikeluarkan adalah mulai dari 2,6 Vdc dan terus turun
sampai sekitar 0,5 Vdc, sehingga jarak berbanding terbalik dengan tegangan, jadi
tegangan akan semakin tinggi pada saat jarak semakin dekat. Setiap 32 ms
pembacaan jarak pada sensor GPD2D12 ini akan selalu update.
17

Gambar 2.12 Grafik Perbandingan Jarak Dan Tegangan

Penggunaan sensor GPD2D12 ini tidak ada perlakuan khusus dalam


proses pembacaannya, sehingga apabila ada mikrokontroler yang sudah terdapat
ADC (Seperti Atmega8535) di dalam maka sensor jarak ini tinggal dihubungkan
dan dibaca tegangan keluarannya.

ATmega8535 merupakan salah satu jenis dari mikrokontroler AVR buatan


ATMEL yang mempunyai 8 channel ADC (Analog to Digital Converter) dengan
resolusi 10bit. Maksudnya adalah mikrokontroler ini mampu untuk diberi
masukan tegangan analog sampai 8 saluran secara bersamaan dengan ketelitian
sampai 10 bit, sehingga pemakaian sensor jarak GPD2D12 pada mikrokontroler
ini maksimal adalah 8 buah.

2.3.3 Mikrokontroler Atmega 8535


Telah berkembang satu rangkaian mikroprosessor yang sudah dilengkapi
dengan memory, baik RAM (Random Access Memory) maupun ROM (Read Only
Memory), sarana until I/O secara pararel maupun seri, timer, dan lain-lain yang
dikemas di dalam satu chip IC dengan tujuan untuk membangun peralatan
berbasis mikroprosessor dengan mudah dan sederhana. Rangkaian mikroprosessor
semacam ini disebut Singel Chip Mikrokomputer atau Mikrokontroller.
18

Sedangkan Mikroprosessor itu sendiri adalah CPU dari sebuah komputer,


tanpa memory, I/O dan periferal yang dibutuhkan oleh suatu sistem lengkap.
Mikrokomputer seperti IBM PC menggunakan disk sebagai media
penyimpanan program, dan perangkat I/O yang banyak digunakan untuk
komunikasi dengan pengguna namun dapat digunakan juga untuk memonitor dan
mengendalikan mekanisme proses pada peralatan yang dikontrol. Adapun
keterangan data mikrokontroller atmega 8535 adalah sebagai berikut.

1. Gambaran Umum Mikrokontroller ATmega 8535


Perkembangan teknologi telah mendorong dengan pesat kemajuan
perkembangan dunia elektronika khususnya dunia mikroelektronika. Dengan
adanya penemuan silikon maka bidang ini telah memberikan sumbangan yang
amat berharga bagi perkembangan teknologi modern. Atmel sebagai salah satu
vendor yang mengembangkan dan memasarkan produk mikroelektronika telah
menjadi suatu teknologi standar bagi para desainer sistem elektronika masa
sekarang. Dengan perkembangan terakhir yaitu generasi AVR (Alf and Vegard’s
Risc processor) maka para desainer sistem elektronika telah diberikan suatu
teknologi yang memiliki kapabilitas yang amat maju namun dengan biaya
ekonomis yang cukup minimal.
Mikrokontroler AVR memiliki arsitektur RISC 8 bit di mana semua
instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi
dieksekusi dalam 1 (satu) siklus clock. Dibandingkan dengan instruksi ASM51
yang membutuhkan 12 siklus clock. Tentu saja ini terjadi karena kedua jenis
mikrokontroler tersebut memiliki arsitektur yang berbeda, yang satu RISC
sedangkan yang lain CISC. Secara umum, AVR dapat dikelompokkan menjadi 4
kelas, yaitu keluarga ATtiny, keluarga AT90Sxx, keluarga ATmega, dan
AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas adalah
memori, peripheral, dan fungsinya . Dari segi arsitektur dan instruksi yang
digunakan, mereka hampir sama.

2. Fitur Mikrokontroller ATmega 8535


Mikrokontroller ATmega 8535 memiliki fitur sebagai berikut.
19

A. Frekuensi clock maksimum 16 MHz


B. Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan
Port D.
C. Analog to Digital Converter 10 bit sebanyak 8 input
D. Timer/Counter sebanyak 3 buah
E. CPU 8 bit yang terdiri dari 32 register
F. Watchdog Timer dengan osilator internal
G. SRAM sebesar 512 byte
H. Memori Flash sebesar 8 Kbyte dengan kemampuan read while
Write.
I. Interrupt internal maupun eksternal
J. Port komunikasi SPI
K. EEPROM sebesar 512 byte yang dapat diprogram saat operasi
L. Analog Comparator
M. Komunikasi serial standar USART dengan kecepatan maksimal 2,5
Mbps

3. Konfigurasi Pin ATmega 8535


Mikrokontroller ATmega 8535 mempunyai 40 kaki (pin), 32 kaki
diantaranya digunakan untuk keperluan input-output, sedangkan 8 kaki lainnya
digunakan untuk VCC, ground, reset, oscillator, dan tegangan referensi. 32 kaki
tersebut membentuk 4 buah port, dimana setiap port terdiri dari 8 kaki. Masing-
masing port biasa dikenal sebagai port A, port B, port C, dan port D. Seperti
ditunjukkan pada gambar 2.13
20

Gambar 2.13 Konfigurasi Pin ATmega 8535

Deskripsi dari pin-pin ATmega 8535 adalah sebagai berikut :


A. Vcc sebagai supply tegangan digital
B. GND sebagai ground
C. Port A sebagai input analog ke A/D konverter. Port A juga sebagai 8-bit
directional port I/O, jika A/D konverter tidak digunakan. Pin-pin port
dapat menyediakan resistor-resistor internal pull-up. Ketika port A
digunakan sebagai input dan pull eksternal yang rendah akan menjadi
sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port A adalah
tri-state ketika kondisi reset menjadi aktif sekalipun clock tidak aktif.

Tabel 2.1 Fungsi Pin pada Port A


21

D. Port B adalah port I/O 8-bit bi-directional dengan resistor-resistor internal


pull-up. Buffer output port B mempunyai karaketristik drive yang simetris
dengan kemampuan keduanya sink dan source yang tinggi. Sebagai input,
port B yang mempunyai pull eksternal yang rendah akan menjadi sumber
arus jika resistor-resistor pull-up diaktifkan. Pin-pin port B adalah tri-state
ketika kondisi reset menjadi aktif sekalipun clock tidak aktif.

Tabel 2.2 Fungsi Pin pada Port B

E. Port C : Port C adalah port I/O 8-bit bi-directional dengan resistor-resistor


internal pull-up. Buffer output port C mempunyai karaketristik drive yang
simetris dengan kemampuan keduanya sink dan source yang tinggi.
Sebagai input, port C yang mempunyai pull eksternal yang rendah akan
menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port
C adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak
aktif. Jika antarmuka JTAG enable, resistor-resistor pull-up pada pin-pin
PC5(TDI), PC3(TMS), PC2(TCK) akan diktifkan sekalipun terjadi reset.

Tabel 2.3 Fungsi Pin pada Port C


22

F. Port D : Port D adalah port I/O 8-bit bit-directional dengan resistor-resistor


internal pull-up. Buffer output port D mempunyai karaketristik drive yang
simetris dengan kemampuan keduanya sink dan source yang tinggi.
Sebagai input, port D yang mempunyai pull eksternal yang rendah akan
menjadi sumber arus jika resistor-resistor pull-up diaktifkan. Pin-pin port
D adalah tri-state ketika kondisi reset menjadi aktif seklipun clock tidak
aktif.

Tabel 2.4 Fungsi Pin pada Port D

G. Reset : Sebuah low level pulsa yang lebih lama daripada lebar pulsa
minimum pada pin ini akan menghasilkan reset meskipun clock tidak
berjalan.
H. XTAL1 : Input inverting penguat Oscilator dan input internal clock operasi
rangkaian.
I. XTAL2 : Output dari inverting penguat Oscilator.
J. AVCC : Pin supply tegangan untuk PortA dan A/D converter. Sebaiknya
eksternalnya dihubungkan ke VCC meskipun ADC tidak digunakan. Jika
ADC digunakan seharusnya dihubungkan ke VCC melalui low pas filter.
K. AREF : Pin referensi analog untuk A/D konverter.

4. Arsitektur Mikrokontroller ATmega8535


Untuk arsitektur mikrokontroller atmega 8535 dapat dilihat pada gambar
blok diagram berikut.
23

Gambar 2.14 Blok Diagram ATmega 8535


Dari gambar tersebut dapat dilihat bahwa ATmega8535 memiliki bagian
sebagai berikut :
1. Saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C, dan Port D.
2. ADC 10 bit sebanyak 8 saluran.
3. Tiga buah Timer/Counter dengan kemampuan pembandingan.
4. CPU yang terdiri atas 32 buah register.
5. Watchdog Timer dengan osilator internal.
6. SRAM sebesar 512 byte.
7. Memori Flash sebesar 8 kB dengan kemampuan Read While Write.
8. Unit interupsi internal dan eksternal.
9. Port antarmuka SPI.
24

10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
11. Antarmuka komparator analog.
12. Port USART untuk komunikasi serial.

5. Struktur Memori Mikrokontroller ATmega8535


AVR ATMega8535 memiliki ruang pengalamatan memori data dan
memori program yang terpisah. Sebagai tambahan, ATmega8535memiliki fitur
suatu EEPROM Memori untuk penyimpanan data. Semuatiga ruang memori
adalah reguler dan linier. Instruksi pada memori program dieksekusi dengan
pipelining single level. Sewaktu sebuah instruksi sedang dikerjakan, instruksi
berikutnya diambil dari memori program.

A. In-System Reprogrammable Flash Program Memory


Mikrokontroler Atmega8535 memiliki 8 Kbytes On-chip In-System
Reprogrammable Flash memory untuk meyimpan program. Karena semua
instruksi AVR lebarnya 16 atau 32 bit, maka memory flash diorganisasi sebagai
4K x 16. Untuk keamanan software, Flash memory space dibagi dalam dua seksi,
yaitu : Boot Program section dan Application Program section. Flash memory
meiliki ketahanan paling sedikit 10,000 kali siklus write/erase. ATmega8535
Program Counter (PC) lebarnya adalah 12 bits yang dapat mengalamati program
sebesar 4K lokasi memory.

Gambar 2.15 Peta Memory Program


25

B. SRAM Data Memory


608 lokasi alamat data memory adalah Register File, I/O Memory dan
internal data SRAM. 96 lokasi alamat pertama adalah Register File dan I/O
Memory. 512 lokasi alamat berikutnya adalah internal data SRAM.

Gambar 2.16 Peta Memory Data

Pengalamatan langsung dapat mencapai semua space memory data.


Pengalamatan tidak langsung dengan mode displacement hanya dapat mencapai
63 lokasi memory dari alamat dasar yang diberikan oleh register Y atau Z. Ketika
menggunakan register mode pengalamatan tidak langsung dengan pre-decrement
dan post-increment automatis, isi register X, Y dan Z akan di-decrement atau di-
increment. Dengan mode pengalamatan tersebut dapat mengakses 32 general
purpose working registers, 64 I/O Registers dan the 512 bytes of internal data
SRAM.

C. EEPROM Data Memory


ATmega8535 memiliki 512 bytes memory data EEPROM yang tahan
paling sedikit 100.000 kali siklus write/erase. Ketika EEPROM sedang dibaca,
CPU akan berhenti bekerja selama empat siklus clock sebelum instruksi
berikutnya diesksekusi. Dan pada saat EEPROM sedang ditulisi CPU akan
berhententi selama dua siklus clock. Untuk menulis EEPROM diperlukan waktu
26

programming selama 8,4 ms Register yang berhubungan dengan EEPROM adalah


sebagai berikut :

EEPROM Address Register – EEARH dan EEARL

EEPROM Data Register – EEDR

EEPROM Control Register – EECR

6. Port Input/Output Digital


ATmega8535 mempunyai empat buah port yang bernama PortA, PortB,
PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan
pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn,
PORTxn, dan PINxn. Huruf ‘x’mewakili nama huruf dari port sedangkan huruf
‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn
terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.
Bit DDxn dalam regiter DDRx (Data Direction Register) menentukan arah pin.
Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka
Px berfungsi sebagai pin input. Bila PORTxn diset 1 pada saat pin terkonfigurasi
sebagai pin input, maka resistor pull-up akan diaktifkan.
Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin
dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset.
27

Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin
port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi
sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port
dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1,
PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled
(DDxn=0, PORTxn=1)atau kondisi output low (DDxn=1, PORTxn=0). Biasanya,
kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi
tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan
sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR
dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari
kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah
yang sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau
kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.

Tabel 2.5 Konfigurasi Pin Port

Bit 2 – PUD : Pull-up Disable Bila bit diset bernilai 1 maka pull-up pada port I/O
akandimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk
menyalakan pull-up (DDxn=0, PORTxn=1).

7. Interupsi
Interupsi atau interrupt adalah suatu kejadian atau peristiwa yang
menyebabkan mikrokontroler berhenti sejenak untuk melayani interrupt tersebut.
Yang harus diperhatikan untuk menguanakan interupsi adalah, kita harus tau
sumber-sumber interupsi, vektor layanan interupsi dan yang terpenting rutin
lyanan interupsi, yaitu subrutin yang akan dikerjakan bila terjadi interupsi.
Analoginya adalah sebagai berikut, seseorang sedang mengetik laporan,
28

mendadak telephone berdering dan menginterrupsi orang tersebut sehingga


menghentikan pekerjaan mengetik dan mengangkat telephone. Setelah
pembicaraan telephone yang dalam hal ini adalah merupakan analogi dari
Interrupt Service Routine selesai maka orang tersebut kembali meneruskan
pekerjaanya mengetik. Demikian pula pada sistem mikrokontroler yang sedang
menjalankan programnya, saat terjadi interrupt, program akan berhenti sesaat,
melayani interrupt tersebut dengan menjalankan program yang berada pada alamat
yang ditunjuk oleh vektor dari interrupt yang terjadi hingga selesai dan kembali
meneruskan program yang terhenti oleh interrupt tadi. Seperti yang terlihat
Gambar di bawah, sebuah program yang seharusnya berjalan terus lurus, tiba-tiba
terjadi interrupt dan harus melayani interrupt tersebut terlebih dahulu hingga
selesai sebelum ia kembali meneruskan pekerjaannya.

Gambar 2.17 Analogi Interrupt

Pada AVR terdapat 3 pin interupsi eksternal, yaitu INT0,INT1,dan


INT2. Interupsi eksternal dapat dibangkitkan apabila ada perubahan logika atau
logika 0 pada pin interupsi Pengaturan kondisi keadaan yang menyebabkan
terjadinya interupsi eksternal diatur oleh register MCUCR ( MCU Control
Register), yang terlihat seperti gambar ini:
29

Untuk bit penyusunnya adalah.


• Bit ISC11 dan ISC10 bersama-sama menentukan kodisi yang dapat
menyebakan interupsi eksternal pada pin INT1. keadaan selengkapnya terlihat
pada table berikut :

Tabel 2.6 Interrupt 1 Sense Control

• Bit ISC01 dan ISC00 bersama-sama menentukan kodisi yang dapat


menyebakan interupsi eksternal pada pin INT0. keadaan selengkapnya terlihat
pada table berikut :

Tabel 2.7 Interrupt 0 Sense Control

Pemilihan pengaktifan interupsi eksternal diatur oleh register GICR ( General


Interrupt Control Register ) yang terlihat pada gambar berikut :

Bit penyusunnya dapat dijelaskan sebagai berikut:


• Bit INT1 adalah bit untuk mengaktifkan interupsi eksternal 1. Apabila bit
tersebut diberi logika 1 dan bit I pada SREG (status register) juga satu ,
maka interupsi eksternal 1 akan aktif.
30

• Bit INT0 adalah bit untuk mengaktifkan interupsi eksternal 0. Apabila bit
tersebut diberi logika 1 dan bit I pada SREG (status register) juga satu ,
maka interupsi eksternal 0 akan aktif.
• Bit INT2 adalah bit untuk mengaktifkan interupsi eksternal 2. Apabila bit
tersebut diberi logika 1 dan bit I pada SREG (status register) juga satu ,
maka interupsi eksternal 2 akan aktif.

Tabel 2.8 Reset and Interrupt Vector

2.4 Bahasa C
Dalam pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis
yang pertama adalah bahasa pemrograman tingkat tinggi (high level language)
31

dan jenis yang kedua adalah bahasa pemrograman tingkat rendah (low level
language). Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia
yaiu bagaimana agar pernyataan-pernyataan yang ada dalam program mudah
dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih berorientasi ke
mesin, yaitu bagaimana agar komputer dapat langsung mengintepretasikan
pertanyaan-pertanyaan program untuk mengerjakan suatu tugas tertentu. Program
yang ditulis dalam bahasa tingkat rendah relatif lebih panjang dan lebih sulit
untuk dipahami, namun kelebihannya lebih efisien dan lebih cepat untuk
dieksekusi oleh mesin.
Bahasa C merupakan salah satu bahasa pemrograman tingkat tinggi yang
paling banya digunakan didunia komputer maupun didunia embedded system.

2.4.1 Struktur Penulisan Program


Pada umumnya dalam penulisan struktur pemrograman bahasa C adalah
sebagai berikut:
# include <library1.h> // optional
# include <library2.h> // optional

# difine (nama1) (nilai); // optional


# difine (nama2) (nilai); // optional

(global variables) // inisialisasi variable


(functions) // program kecil
void main (void) // program utama

2.4.2 Tipe Data


¾ char : 1 byte ( -128 s/d 127)
¾ unsigned char : 1 byte ( 0 s/d 255)
¾ int : 2 byte ( -32768 s/d 32767)
¾ unsigned int : 2 byte ( 0 s/d 65535)
¾ long : 4 byte ( -2147483648 s/d 2147483647)
¾ unsigned long : 4 byte ( -128 s/d 127)
32

¾ float : bilangan desimal


¾ array : data-data yang sama tipenya
¾ void : tidak bernilai

2.4.3 Penyimpanan Data


¾ Variabel : memori penyimpanan data yang datanya dapat diubah
nilainya.
Deklarasi : [tipe data] [nama] = [nilai];
¾ Konstanta : memori penyimpanan data yang datanya tidak dapat
diubah nilainya.
Deklarasi : const [nama] = [nilai];
[nama] : hanya huruf, angka (bukan karakter pertama), underscore
(_).
¾ Global : variabel/konstanta yang dapat diakses diselruh bagian
program.
¾ Local : variabel/konstanta yang hanya dapat diakses oleh fungsi
tempat dideklarasikannya.

2.4.4 Operasi Pemrograman


1. Operasi logika dan biner
Logika
- AND : &&
- OR : ||
- NOT : !
biner
- AND : &
- OR : |
- XOR : ^
- Shift left : <<
- Righ shift : >>
- Komplemen : ~
2. Operasi relasional ( perbandingan)
33

Sama dengan : ==
Tidak sama dengan : !=
Lebih besar :>
Lebih besar sama dengan : >=
Lebih kecil :<
Lebih kecil sama dengan : <=

3. Operasi aritmatika
Operator : [ +. -. *. /, %. +=. -=. *=. ++. --]
+.-.*./ : tambah, kurang, kali, bagi
+=, -=, *=, /= : nilai desebelah kiri operator di tambah, kurang, kali,
bagi dengan nilai desebelah kanan operator
% : sisa bagi
++, -- : tambah sati (increment), kurang satu (decrement)

2.4.5 Statement
Statement adalah setiap operasi dalam pemrograman yang diakhiri dengan
[;] atau [}]. Statement tidak akan dieksekusi bila diawali dengan tanda [//] untuk
satu baris, untuk lebih dari satu baris gunakan pasangan [/*] dan [*/]. Statemen
yang tidak dieksekusi desebut juga dengan comments / komentar.

2.4.6 Conditional Statement


¾ If….. = jika....maka....jika tidak....
If ( [persyaratan] ) { [statement 1] ; [satatement 2] ; … }
¾ for…
for ( [nilai awal] ; [persyaratan] ; [operasi nilai] ) { [statement 1] ;
[satatement 2] ; … }
¾ while…
while ( [persyaratan] ) { [statement 1] ; [satatement 2] ; … }
¾ do…while…
do { [statement 1] ; [satatement 2] ; … } while ( [persyaratan] )
¾ switch…case…
34

switch ( [nama variabel] )


{case [nilai 1]; [statement]; break; case [nilai 2]; [statement]; break; …}

2.4.7 Function
Function adalah program kecil yang dipanggil oleh program utama.
Penulisan :
[tipe data hasil] [nama function] ( [tipe data input 1], [tipe data input 2] )
{
[statement]
}

Anda mungkin juga menyukai