Top Banner
BAB II LANDASAN TEORI 2.1 Mikrokontroler Mikrokontroler merupakan suatu komponen elektronika yang didalamnya terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer. Pada mikrokontroler sudah terdapat komponen-komponen mikroprosesor dengan bus-bus internal yang saling berhubungan. Komponen-komponen tersebut adalah RAM, ROM, timer, komponen I/O paralel dan serial, dan interrupt kontroler. Adapun keunggulan dari mikrokontroller adalah adanya sistem interrupt. Sebagai perangkat kontrol penyesuaian, mikrokontroler sering disebut juga untuk menaikkan respon eksternal (interrupt) pada waktu yang nyata. Perangkat tersebut harus melakukan hubungan switching cepat, menunda satu proses ketika adanya respon eksekusi yang lain. Mikrokontroler juga merupakan otak dari sistem elektronika dimana kita bisa memprogram sesuai keinginan kita (Heriyanto, M. Ary dkk, 2008) 2.1.1 Mikrokontroler AVR Mikrokontroler Atmega8 (AVR) ini merupakan salah satu dari jenis mikrokonroller CMOS 8 bit berdassarkan aristektur AVR RISc yang memiliki performa tinggi dengan disipasi daya yang tendah, serta untuk melakukan 4
30

Bab ii atmega8

Apr 15, 2017

Download

Technology

Aput Rodriguez
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bab ii atmega8

BAB II

LANDASAN TEORI

2.1 Mikrokontroler

Mikrokontroler merupakan suatu komponen elektronika yang didalamnya

terdapat rangkaian mikroprosesor, memori (RAM/ROM) dan I/O, rangkaian

tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer.

Pada mikrokontroler sudah terdapat komponen-komponen mikroprosesor dengan

bus-bus internal yang saling berhubungan. Komponen-komponen tersebut adalah

RAM, ROM, timer, komponen I/O paralel dan serial, dan interrupt kontroler.

Adapun keunggulan dari mikrokontroller adalah adanya sistem interrupt. Sebagai

perangkat kontrol penyesuaian, mikrokontroler sering disebut juga untuk

menaikkan respon eksternal (interrupt) pada waktu yang nyata. Perangkat tersebut

harus melakukan hubungan switching cepat, menunda satu proses ketika adanya

respon eksekusi yang lain. Mikrokontroler juga merupakan otak dari sistem

elektronika dimana kita bisa memprogram sesuai keinginan kita (Heriyanto, M.

Ary dkk, 2008)

2.1.1 Mikrokontroler AVR

Mikrokontroler Atmega8 (AVR) ini merupakan salah satu dari jenis

mikrokonroller CMOS 8 bit berdassarkan aristektur AVR RISc yang memiliki

performa tinggi dengan disipasi daya yang tendah, serta untuk melakukan suatu

perintah hanya membutuhkan 1 clok osilator, ukuran yang kecil serta mempunyai

fasilitas yang lengkap, sehingga sangat cocok untuk dijadikan sebuah alat kontrol

yang membutuhkan ukuran kecil serta daya rendah. Berikut gambar

mikrokontroler ATMega8 (Harsono, 2009:2).

Gambar 2.1 Mikrokontroler ATmega8

4

Page 2: Bab ii atmega8

Arsitektur mikrokontroler jenis AVR (Alf and Vegard RISC) pertama

kali dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian

Institute of Technology yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler

AVR kemudian dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang

dikeluarkan adalah mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin

yang sama dengan mikrokontroler 8051, termasuk address dan data bus yang

termultipleksi.

Mikrokontroler AVR menggunakan teknologi RISC (Reduced Instruction

Set Computer) dimana set instruksinya dikurangi dari segi ukurannya dan

kompleksitas mode pengalamatannya. Pada awal era industri komputer, bahasa

pemrograman masih menggunakan kode mesin dan bahasa Assembly. Untuk

mempermudah dalam pemrograman para desainer komputer kemudian

mengembangkan bahasa pemrograman tingkat tinggi yang mudah dipahami

manusia. Namun akibatnya, instruksi yang ada menjadi semakin komplek dan

membutuhkan lebih banyak memori. Dan tentu saja siklus eksekusi instruksinya

menjadi semakin lama. Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi

berukuran 16 bit dan sebagian besar dieksekusi dalam 1 siklus clock. Berbeda

dengan mikrokontroler MCS-51 yang instruksinya bervariasi antara 8 bit sampai

32 bit dan dieksekusi selama 1 sampai 4 siklus mesin, dimana 1 siklus mesin

membutuhkan 12 periode clock. Dalam perkembangannya, AVR dibagi menjadi

beberapa varian yaitu AT90Sxx, ATMega, AT86RFxx dan ATTiny. Pada

dasarnya yang membedakan masing-masing varian adalah kapasitas memori dan

beberapa fitur tambahan saja.

Mikrokontroler Atmega8 (AVR) merupakan salah satu jenis

mikrokontroller yang di dalamnya terdapat berbagai macam fungsi. Perbedaannya

pada mikro yang pada umumnya digunakan seperti MCS51 adalah pada AVR

tidak perlu menggunakan oscillator eksternal karena di dalamnya sudah terdapat

internal oscillator. Selain itu kelebihan dari AVR adalah memiliki Power-On

Reset, yaitu tidak perlu ada tombol reset dari luar karena cukup hanya dengan

mematikan supply, maka secara otomatis AVR akan melakukan reset. Untuk

beberapa jenis AVR terdapat beberapa fungsi khusus seperti ADC, EEPROM

sekitar 128 byte sampai dengan 512 byte. AVR Atmega8 adalah mikrokontroler

5

Page 3: Bab ii atmega8

CMOS 8-bit berarsitektur AVR RISC yang memiliki 8K byte in-System

Programmable Flash.

Mikrokontroler dengan konsumsi daya rendah ini mampu mengeksekusi

instruksi dengan kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika

dibandingkan dengan ATmega8L perbedaannya hanya terletak pada besarnya

tegangan yang diperlukan untuk bekerja. Untuk Atmega 8 tipe L, mikrokontroler

ini dapat bekerja dengan tegangan antara 2,7 - 5,5 V sedangkan untuk Atmega 8

hanya dapat bekerja pada tegangan antara 4,5 – 5,5 V.

Fitur-fitur yang ada pada mikrokontroler ATmega8 ini adalah memori

program 8 Kb dengan flash memori 1000 tulis atau hapus, memori data SRAM

dengan kapasitas 1 Kb dan EEPROM dengan kapasitas 512 byte dengan 100.000

tulis dan hapus. Dan frekuensi pengoperasian hingga 16 MHz. memiliki 23 I/O

yang dapat diprogram, 6 chanel ADC 10 bit, USART, TWI, Tiga PWM, Timer 16

bit dan counter 16 bit.

2.1.2 Central Processing Unit (CPU)

Unit pemrosesan pusat CPU (Central Processing Unit), Terdiri dari dua unit

yaitu unit pengendali CU (Control Unit), dan unit aritmatika dan logika ALU

(Aritmetic and Logical Unit). Unit aritmatika dan logika melaksanakan operasi

aritmatika untuk data yang melaluinya. Fungsi aritmatika yang lazim termasuk

logika AND, logika OR dan Operasi pergeseran.

Fungsi utama sebuah unit pengendali adalah mengambil, mengkode dan

melaksanakan urutan instruksi sebuah program yang tersimpan dalam memori.

Unit pengendali mengatur urutan operasi sebuah sistem. Khususnya unit ini

menghasilkan dan mengatur sinyal pengendali yang diperlukan untuk

mensinkronkan seluruh operasi sebuah sistem, selain itu juga aliran data dan

instruksi program di dalam dan di luar ALU.

2.1.3 Memori

Setiap sistem mikrokontroler memerlukan memori untuk dapat menyimpan

program dan data. Pada mikrokontroler sendiri sudah terdapat memori data dan

memori program, ada beberapa tingkatan memori diantaranya adalah register

6

Page 4: Bab ii atmega8

internal, memori utama dan memori masal. Register internal adalah memori di

dalam ALU. Waktu akses register ini sangat cepat umumnya kurang dari 100ns.

Ada dua tipe logika memori, tergantung dari kemungkinan aksesnya, yaitu

yang dihubungkan secara acak Random Access Memory (RAM) yang bisa dibaca

atau ditulisi, dan memori yang hanya untuk dibaca saja Read Only Memory

(ROM). Dalam mikrokontroler, RAM itu disebut sebagai memori data (Data

Memory), sedangkan ROM dikenal sebagai memori program (Program Memory).

Random Access Memory (RAM) adalah memori yang dapat dibaca atau ditulisi.

Data dalam RAM akan terhapus (volatile) bila catu daya dihilangkan.

Karena sifat RAM yang volatile, maka program mikrokontroler tidak

tersimpan dalam RAM. RAM hanya digunakan untuk menyimpan data secara

sementara. Terdapat dua teknologi yang dipakai untuk membuat RAM yaitu RAM

Statik dan RAM Dinamik. Dalam RAM statik satu bit informasi tersimpan dalam

sebuah flip-flop. RAM statik tidak memerlukan penyegar dan penangannya tidak

terlalu rumit. Isi RAM tetap selama catu daya diberikan. Sedangkan RAM

Dinamik menyimpan bit informasi sebagai muatan. Sel memori elementer dibuat

dari kapasitansi gerbang substrat transistor MOS.

2.1.4 Konfigurasi Pin ATmega8.

ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi

yang berbeda-beda baik sebagai port maupun fungsi yang lainnya. Berikut akan

dijelaskan fungsi dari masing-masing kaki ATmega8.

1. VCC merupakan supply tegangan digital.

2. GND merupakan ground untuk semua komponen yang membutuhkan

grounding. Port B (PB7...PB0) Didalam Port B terdapat XTAL1, XTAL2,

TOSC1, TOSC2. Jumlah Port B adalah 8 buah pin, mulai dari pin B.0

sampai dengan B.7. Tiap pin dapat digunakan sebagai input maupun

output. Port B merupakan sebuah 8-bit bi-directional I/O dengan internal

pull-up resistor. Sebagai input, pin-pin yang terdapat pada port B yang

secara eksternal diturunkan, maka akan mengeluarkan arus jika pull-up

resistor diaktifkan. Khusus PB6 dapat digunakan sebagai input Kristal

(inverting oscillator amplifier) dan input ke rangkaian clock internal,

7

Page 5: Bab ii atmega8

bergantung pada pengaturan Fuse bit yang digunakan untuk memilih

sumber clock. Sedangkan untuk PB7 dapat digunakan sebagai output

Kristal (output oscillator amplifier) bergantung pada pengaturan Fuse bit

yang digunakan untuk memilih sumber clock. Jika sumber clock yang

dipilih dari oscillator internal, PB7 dan PB6 dapat digunakan sebagai I/O

atau jika menggunakan Asyncronous Timer/Counter2 maka PB6 dan PB7

(TOSC2 dan TOSC1) digunakan untuk saluran input timer.

3. Port C (PC5…PC0) port C merupakan sebuah 7-bit bi-directional I/O port

yang di dalam masing-masing pin terdapat pull-up resistor. Jumlah pin nya

hanya 7 buah mulai dari pin C.0 sampai dengan pin C.6. Sebagai

keluaran/output port C memiliki karakteristik yang sama dalam hal

menyerap arus (sink) ataupun mengeluarkan arus (source).

4. RESET/PC6 jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi

sebagai pin I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-

pin yang terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak

diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level

tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek

dari pulsa minimum, maka akan menghasilkan suatu kondisi reset

meskipun clock-nya tidak bekerja.

5. Port D (PD7…PD0) port D merupakan 8-bit bi-directional I/O dengan

internal pull-up resistor. Fungsi dari port ini sama dengan port-port yang

lain. Hanya saja pada port ini tidak terdapat kegunaan-kegunaan yang lain.

Pada port ini hanya berfungsi sebagai masukan dan keluaran saja atau

biasa disebut dengan /O.

6. AVcc ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini

harus dihubungkan secara terpisah dengan VCC karena pin ini digunakan

untuk analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja

disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika

ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui low pass

filter.

7. AREF merupakan pin referensi jika menggunakan ADC.

8

Page 6: Bab ii atmega8

2.1.5 Input/Output

Input/output diperlukan untuk berkomunikasi dengan dunia luar. Modul

masukan menyediakan informasi bagi ALU atau memori. Alat masukan yang

khas seperti keyboard (keypad) atau sensor (transducer). Modul keluaran

menyajikan data yang datang dari ALU atau melaksanakan perintah-perintah.

Modul keluaran yang khas adalah printer, satu set lampu, atau mekanisme

pengendali motor stepper, relay, LED ( Ligh Emmitting Diode), atau LCD (Liquid

Crystal Display). Dalam mikrokontroler ATmega328 terdapat input output atau

yang disebut pin mapping seperti ditunjukkan gambar berikut ini :

Gambar 2.2 Pin Mapping ATMega8

2.1.6 Pewaktu CPU

Agar dapat mengeksekusi program, mikrokontroler membutuhkan pulsa

clock. Pulsa ini dapat dihasilkan dengan memasang rangkaian resonator pada pin

XTAL1 dan XTAL2. Frekuensi kerja maksimum ATmega328 adalah 16 MHz.

Mikrokontroler ATmega328 memiliki osilator internal (on-chip oscillator) yang

dapat digunakan sebagai sumber clock bagi CPU. Untuk menggunakan osilator

internal diperlukan sebuah kristal atau resonator keramik antara pin XTAL1 dan

XTAL2 dan kapasitor yang dihubungkan ke ground. Jadi clock yang diperoleh

CPU berasal dari sinyal yang diberikan dari sebuah kristal. Penggunaan kristal

dengan frekuensi dari 6 MHz sampai 16 MHz, sedangkan untuk kapasitor dapat

9

Page 7: Bab ii atmega8

bernilai 27 pF sampai 33 pF. Hubungan oscilator untuk ATmega328 dapat dilihat

pada gambar 2.3

Gambar 2.3 crystal 16 Mhz

Dalam mikrokontroler dikenal istilah Machine Cycle (MC) / Siklus

Mesin, dimana :

1 MC = 6 state = 12 periode clock

Jika frekuensi crystal yang digunakan adalah 12 MHz maka 1 MC =

12/frekuensi crystal = 12/12 MHz =1uS

Gambar 2.4 Siklus Mesin

2.1.7 Arsitektur Mikrokontroler ATMega8

Mikrokontroler ATMega8 bekerja dengan level tegangan TTL, dalam hal

ini digunakan tegangan sebesar 5 volt. Semua port yakni digital pin 0 samapi

dengan 13 dan pin analog 0 sampai 5 bersifat bi-directional I/O dengan internal

pull-up. Untuk membangkitkan frekuensi kerja pada perancangan ini

menggunakan osilator kristal sebesar 16 MHz. Berdasarkan data sheet ATmega8

besar nilai kapasitor yang digunakan harus berada pada 33 + 10 pF, pada

10

Page 8: Bab ii atmega8

perancangan ini digunakan kapasitor 22 pF. Dengan demikian maka dapat

dihasilkan waktu mendekati 1 mikrodetik setiap satu siklus mesin.

Reset (Pin 1) bekerja pada saat berlogika tinggi, transisi logika dari rendah

ke tinggi akan mereset sistem minimum ATMega8. Untuk menghasilkan sinyal

tersebut digunakan kapasitor, tahanan dan sebuah saklar push bottom.

Penyemat X1 dan X2 dihubungkan dengan kristal yang berfungsi sebagai

pembentuk sebuah isolator bagi mikrokontroler. Kristal 16 MHz ini didukung dua

capasitor keramik C1 dan C2 yang nilainya sama sebesar 22pF. Apabila terjadi

beda potensial pada kedua kapasitor tersebut maka kristal akan berosilasi. Pulsa

yang keluar adalah berbentuk gigi gergaji dan akan dikuatkan oleh rangkaian

internal pembangkit rangkaian pulsa pada mikrokontroler sehingga akan berubah

menjadi pulsa clock. Untuk pembagian dari frekuensi internal mikrokontroler itu

sendiri yang diinisialisasi dengan program.

Penyemat Reset dihubungkan dengan saklar yang digunakan untuk me-

Reset mikrokontroller. Karena kaki reset ini aktif berlogic tinggi maka diperlukan

Resistor R1 yang nilainya 10K yang dihubungkan dengan tegangan 0 Volt untuk

memastikan penyemat Reset berlogic rendah saat sistem ini bekerja. Kapasitor

C1=10F berfungsi untuk meredam adanya kesalahan akibat penekanan saklar

Reset. Rangkaian sistem minimum ATMega8 dapat digambarkan seperti Gambar

2.5

Gambar 2.5 Rangkaian sistem minimum ATMega8

11

Page 9: Bab ii atmega8

2.2 Sensor Cahaya LDR (Light Dependent Resistor)

Sensor cahaya LDR (Light Dependent Resistor) adalah salah satu resistor

yang dapat mengalami perubahan resistansinya apabila mengalami perubahan

penerimaan cahaya. Besarnya nilai hambatan pada sensor cahaya LDR (Light

Dependent Resistor) tergantung pada besar kecilnya cahaya yang diterima oleh

sensor itu sendiri. LDR (Light Dependent Resistor) sering disebut dengan alat atau

sensor yang berupa resistor yang peka terhadap cahaya. Biasanya LDR (Light

Dependent Resistor) terbuat dari cadmium sulfida yaitu merupakan bahan

semikonduktor yang risistansinya berubah-ubah menurut banyaknya cahaya

(sinar) yang mengenainya. Resistansi LDR (Light Dependent Resistor) pada

tempat yang gelap biasanya mencapai sekitar 10 mΩ, dan ditempat terang LDR

(Light Dependent Resistor) mempunyai resistansi yang turun menjadi sekitar

150Ω. Simbol LDR (Light Dependent Resistor) dapat dilihat seperti pada gambar

berikut.

Gambar 2.6 Simbol dan fisik sensor cahaya LDR

2.2.1 Karakteristik Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) adalah suatu bentuk

komponen yang mempunyai perubahan resistansi yang besarnya tergantung pada

cahaya. Karakteristik LDR (Light Dependent Resistor) terdiri dari dua macam

yaitu Laju Recovery dan Respon Spektral sebagai berikut:

1. Laju Recovery Sensor Cahaya LDR (Light Dependent Resistor)

Bila sebuah Sensor Cahaya LDR (Light Dependent Resistor)

dibawa dari suatu ruangan dengan level kekuatan cahaya tertentu ke dalam

suatu ruangan yang gelap, maka bisa kita amati bahwa nilai resistansi dari

LDR (Light Dependent Resistor) tidak akan segera berubah resistansinya

pada keadaan ruangan gelap tersebut. Namun LDR (Light Dependent 12

Page 10: Bab ii atmega8

Resistor) tersebut hanya akan bisa mencapai harga di kegelapan setelah

mengalami selang waktu tertentu. Laju recovery merupakan suatu ukuran

praktis dan suatu kenaikan nilai resistansi dalam waktu tertentu. Harga ini

ditulis dalam K/detik, untuk LDR (Light Dependent Resistor) tipe arus

harganya lebih besar dari 200K/detik (selama 20 menit pertama mulai dari

level cahaya 100 lux), kecepatan tersebut akan lebih tinggi pada arah

sebaliknya, yaitu pindah dari tempat gelap ke tempat terang yang

memerlukan waktu kurang dari 10 ms untuk mencapai resistansi yang

sesuai dengan level cahaya 400 lux.

2. Respon Spektral Sensor Cahaya LDR (Light Dependent Resistor)

Sensor Cahaya LDR (Light Dependent Resistor) tidak mempunyai

sensitivitas yang sama untuk setiap panjang gelombang cahaya yang jatuh

padanya (yaitu warna). Bahan yang biasa digunakan sebagai penghantar

arus listrik yaitu tembaga, aluminium, baja, emas dan perak. Dari kelima

bahan tersebut tembaga merupakan penghantar yang paling banyak,

digunakan karena mempunyai daya hantar yang baik

2.2.2. Prinsip Kerja Sensor Cahaya LDR (Light Dependent Resistor)

Resistansi Sensor Cahaya LDR (Light Dependent Resistor) akan berubah

seiring dengan perubahan intensitas cahaya yang mengenainya atau yang ada

disekitarnya. Dalam keadaan gelap resistansi LDR (Light Dependent Resistor)

seki-tar 10MΩ dan dalam keadaan terang sebesar 1KΩ atau kurang. LDR (Light

Dependent Resistor) terbuat dari bahan semikonduktor seperti cadmium sulfida.

Dengan bahan ini energi dari cahaya yang jatuh menyebabkan lebih banyak

muatan yang dilepas atau arus listrik meningkat. Artinya resistansi bahan telah

mengalami penurunan.

2.3 Sensor Infra merah

Cahaya infra merah merupakan cahaya yang tidak tampak. Jika dilihat dengan

spektroskop cahaya maka radiasi cahaya infra merah akan terlihat pada spektrum

elektromagnet dengan panjang gelombang di atas panjang gelombang cahaya

merah. Radiasi inframerah memiliki panjang gelombang antara 700 nm sampai 1

13

Page 11: Bab ii atmega8

mm dan berada pada spektrum berwarna merah. Dengan panjang gelombang ini

maka cahaya infra merah tidak akan terlihat oleh mata namun radiasi panas yang

ditimbulkannya masih dapat dirasakan/dideteksi.

Pada dasarnya komponen yang menghasilkan panas juga menghasilkan radiasi

infra merah termasuk tubuh manusia maupun tubuh binatang. Cahaya infra merah,

walaupun mempunyai panjang gelombang yang sangat panjang tetap tidak dapat

menembus bahan-bahan yang tidak dapat melewatkan cahaya yang nampak

sehingga cahaya infra merah tetap mempunyai karakteristik seperti halnya cahaya

yang nampak oleh mata.

Pada pembuatan komponen yang dikhususkan untuk penerima infra merah,

lubang untuk menerima cahaya (window) sudah dibuat khusus sehingga dapat

mengurangi interferensi dari cahaya non-infra merah. Oleh sebab itu sensor infra

merah yang baik biasanya memiliki jendela (pelapis yang terbuat dari silikon)

berwarna biru tua keungu-unguan. Sensor ini biasanya digunakan untuk aplikasi

infra merah yang digunakan diluar rumah (outdoor).

Sinar infra merah yang dipancarkan oleh pemancar infra merah tentunya

mempunyai aturan tertentu agar data yang dipancarkan dapat diterima dengan

baik pada penerima. Oleh karena itu baik di pengirim infra merah maupun

penerima infra merah harus mempunyai aturan yang sama dalam mentransmisikan

(bagian pengirim) dan menerima sinyal tersebut kemudian mendekodekannya

kembali menjadi data biner (bagian penerima). Komponen yang dapat menerima

infra merah ini merupakan komponen yang peka cahaya yang dapat berupa dioda

(photodioda) atau transistor (phototransistor). Komponen ini akan merubah energi

cahaya, dalam hal ini energi cahaya infra merah, menjadi pulsa-pulsa sinyal

listrik. Komponen ini harus mampu mengumpulkan sinyal infra merah sebanyak

mungkin sehingga pulsa-pulsa sinyal listrik yang dihasilkan kualitasnya cukup

baik.

Gambar 2.7 Sensor infra merah

14

Page 12: Bab ii atmega8

2.4 Liquid Crystal Display (LCD)

LCD merupakan perangkat elektronik yang kristal cair, yang digunakan

untuk menampilkan suatu nilai dari hasil sensor seperti, karakter atau bilangan

maupun menampilkan menu pada aplikasi, sebagai informasi kerja dari suatu

sistem berbasis mikrokontroller. Setiap LCD sudah dilengkapi IC driver yang

berfungsi sebagai kontrolnya.

Salah satu tipe LCD yang banyak digunakan adalah LCD tipe M1632. yaitu

LCD yang mempunyai 2 baris tampilan dan setiap baris dapat menampilkan

hingga 16 kolomkarakter. Setiap baris dan kolom mempunyai alamat

sendirisendiri.LCD tipe M1632 mempunyai alamat 80h sampai8fh untuk baris

pertama dan untuk baris kedua C0h sampaiCfh.

Gambar 2.8 LCD (Liquid Crystal Display)

Urutan pin (1), umumnya, dimulai dari sebelah kiri (terletak di pojok kiri atas)

dan untuk LCD yang memiliki 16 pin, 2 pin terakhir (15 & 16) adalah anoda dan

katoda untuk back-lighting.

Tabel 2.1 Fungsi pin-pin pada LCD

Interface LCD merupakan sebuah parallel bus, dimana hal ini sangat

memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke

15

Page 13: Bab ii atmega8

LCD. Kode ASCII yang ditampilkan sepanjang 8 bit dikirim ke LCD secara 4

atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan, maka 2 nibble data

dikirim untuk membuat se MSB lalu 4 bit LSB dengan pulsa clock EN setiap

nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa

mikrokontroler mengirimkan data ke LCD. Untuk mengirim data ke LCD

program harus menset EN ke kondisi high (1) dan kemudian menset dua jalur

kontrol lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat

jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung

pada datasheet LCD), dan set EN kembali ke high (1). Ketika jalur RS berada

dalam kondisi low (0), data yang dikirimkan ke LCD dianggap sebagai sebuah

perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika

RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan

ditampilkan dilayar. Misal, untuk menampilkan huruf pada layar maka RS harus

diset ke 1.

Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data

bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high (1), maka

program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan

hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan

instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W

selalu diset ke 0. Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang

dipilih pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6

dan DB7. Mengirim data secara parallel baik 4 atau 8 bit merupakan 2 mode

operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode

operasi merupakan hal yang paling penting. Mode 8 bit sangat baik digunakan

ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya

minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data).

Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4

untuk data).

2.5 Driver motor

IC L293D adalah salah satu diver yang handal dikemas dalam sebuah IC.

IC L293D adalah suatu bentuk rangkaian daya tinggi terintegrasi yang mampu

16

Page 14: Bab ii atmega8

melayani 4 buah beban dengan arus nominal 600mA hingga maksimum 1.2 A. ke

4 kanal inputnya didesain untuk dapat menerima masukan level logika TTL. IC

L293D biasa dipakai sebagai driver relay, motor DC, motor stepper maupun

pengganti taransistor sebagai saklar dengan kecepatan switching mencapai 5kHz.

Direr tersebut berupa dua pasang rangkain H-Brigde yang masing-masing

dikendalikan oleh enable1 dan enable2.

Cara kerja driver ini cukup sederhana yakni dengan memberikan tegangan

5V sebagai Vcc pada pin 16 dan 12 Volt pada pin 8 untuk tegangan motor, maka

IC ini siap digunakan. Driver L293D dapat dignakan untuk mengontrol 2 buah

motor sekaligus, dan juga dapat mengontrol motor DC secara kontinu dan dengan

teknik PWM.

Gambar 2.9 Bentuk fisik IC driver motor L293

2.6 Motor stepper

Motor stepper merupakan salah satu jenis motor yang banyak digunakan

saat ini sebagai actuator, misalnya sebagai penggerak head baca/tulis pada disk

drive yang akan menetapkan posisi head baca/tulis di atas permukaan piringan

disket, penggerak head pada printer dan line feed control, dan yang lebih populer

saat ini adalah aplikasi dalam bidang robotik. Dengan bantuan mikroprosesor atau

mikrokontroler perputaran motor dapat dikontrol dengan tepat dan terprogram.

Motor stepper merupakan motor DC yang tidak mempunyai komutator.

Umumnya motor stepper hanya mempunyai kumparan pada bagian stator

sedangkan pada bagian rotor merupakan magnet permanen (bahan

ferromagnetic). Karena konstruksi inilah maka motor stepper dapat diatur

posisinya pada posisi tertentu dan/atau berputar ke arah yang diinginkan, apakah

searah jarum jam atau sebaliknya. Ada tiga jenis motor stepper: motor stepper

Magnet Permanen, Variable Reluctance dan Hybrid. Semua jenis tersebut 17

Page 15: Bab ii atmega8

melakukan fungsi dasar yang sama, tetapi mempunyai perbedaan penting pada

beberapa aplikasi.

Motor stepper dapat berputar atau berotasi dengan sudut step yang bisa

bervariasi tergantung motor yang digunakan. Ukuran step (step size) dapat berada

pada range 0,90 sampai 900. Misalnya sudut step 7,50; 150; 300 dan seterusnya

tergantung aplikasi atau kebutuhan yang diinginkan. Posisi putarannya pun relatif

eksak dan stabil. Dengan adanya variasi sudut step tersebut akan lebih

memudahkan untuk melakukan pengontrolan serta pengontrolannya dapat

langsung menggunakan sinyal digital tanpa perlu menggunakan rangkaian closed-

loop feedback untuk memonitor posisinya. Dengan alasan inilah maka motor

stepper banyak digunakan sebagai actuator yang menerapkan rangkaian digital

sebagai pengontrol/driver, ataupun untuk interfacing ke piranti yang berbasis

mikroprosesor/mikrokontroler.

Gambar 2.10 Motor stepper empat-kumparan

2.7 Motor Servo

Motor DC seringkali disebut juga sebagai motor servo walau dalam

realitanya berbeda dengan motor DC. Motor servo merupakan motor DC yang

mempunyai kualitas tinggi, sudah dilengkapi dengan sistem kontrol di dalamnya.

Dalam aplikasi motor servo sering digunakan sebagai kontrol loop tertutup untuk

menangani perubahan posisi secara tepat dan akurat. Begitu juga dengan

pengaturan kecepatan dan percepatan (Widodo, 2010, 73).

18

Page 16: Bab ii atmega8

Gambar 2.11 Model Fisik Motor Servo

Bentuk fisik dari motor servo dapat dilihat pada gambar 2.9. Sistem

pengkabelan motor servo terdiri dari 3 bagian, yaitu Vcc, Gnd, dan Kontrol

(PWM). Penggunaan PWM pada motor servo berbeda dengan penggunaan motor

servo pada motor DC. Pada motor servo, pemberian nilai PWM akan membuat

motor servo bergerak pada posisi tertentu dan kemudian berhenti (kontrol posisi).

Pengaturannya dapat dilakukan dengan menggunakan delay pada setiap

perpindahan dari posisi awal menuju posisi akhir (Widodo, 2010, 74).

Motor servo dibedakan menjadi 2, yaitu continuous servo motor dan

uncontinuous servo motor. Motor servo kontinu dapat berputar penuh 360°

sehingga memungkinkannya untuk melakukan gerak rotasi. Prinsip utama

pengontrolan motor servo adalah pemberian nilai PWM pada kontrolnya.

Perubahan duty cycle akan menentukan perubahan posisi dari motor servo. Seperti

motor stepper, motor servo merupakan solusi yang baik dan sederhana untuk

dunia robotika. Namun motor servo memiliki kekurangan, yaitu tidak dapat

memberikan umpan balik keluar. Ketika memberikan sinyal PWM pada sebuah

servo, kita tidak tahu kapan servo akan mencapai posisi yang dikehendaki. Motor

servo HS805 memiliki torsi hingga 20 Kg, GWS 04 kg, servo GWS S35, dan S03

memiliki torsi yang lebih rendah. Beberapa tipe lain yang memiliki daya tahan

tinggi adalah Hitec-422 dan Hitec-311. Motor servo kontinu dapat berputar 360

19

Page 17: Bab ii atmega8

derajat, sedangkan motor servo standar hanya dapat berputar sekitar 180 derajat

(Widodo, 2010, 74).

2.8 Bahasa Pemrograman

Code Vision merupakan IDE untuk mikrokontroler jenis AVR yang sudah

dilengkapi dengan kompiler C. Sebagai sebuah IDE, Code Vision dilengkapi

dengan berbagai macam tool, seperti Integrated ISP, Code Wizard (ini merupakan

fitur yang paling menarik dari Code Vision), Integrated Compileran dan

Integrated Editor sehingga memudahkan programmer dalam membuat,

mengompilasi dan men-download-kan ke target device (Susilo, 2010:227).

Meskipun begitu, Code Vision masih memiliki kelemahan, yaitu pada

bagian debugging, code vision tidak dilengkapi dengan integrated debugger

sehingga programmer mengalami kesulitan ketika akan men-debug programmnya.

Seperti Keil C, program yang kita buat dikelompokkan menjadi sebuah project

yang nantinya diletakkan pada Project Workspace (Susilo, 2010:227).

CodeVisionAVR menyediakan sebuah editor yang di desain untuk

menghasilkan program C secara otomatis untuk mikrokontroler AVR. Integrated

Development Environtment (IDE) telah dilengkapi dengan fasilitas pemrograman

chip melalui metode In-System Programming sehingga dapat secara otomatis

mentransfer file program kedalam chip mikrokontroler AVR setelah sukses di

kompilasi (Winoto dan Adi, 2011, 7).

2.9 Teori Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang

disusun secara sistematis dan logis. Kata logis merupakan kata kunci dalam

algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat

ditentukan bernilai salah atau benar (Handrizal, 2008, 1).

Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk

melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah,

pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran

yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus

20

Page 18: Bab ii atmega8

apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma

tersebut bukanlah algoritma yang baik (Handrizal, 2008, 1).

Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui

seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama

pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil

(hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu

memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya

(Handrizal, 2008. 2).

Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2

hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran

yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk

mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap

orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin

besar memori yang terpakai maka semakin buruklah algoritma tersebut

(Handrizal, 2008, 2).

Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda

untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam

menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika

terjadi demikian, carilah algoritma yang paling efisien dan cepat (Handrizal, 2008,

2).

Pembuatan algoritma mempunyai banyak keuntungan di antaranya (Handrizal,

2008:3):

1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa

pemrograman manapun, artinya penulisan algoritma independen dari

bahasa pemrograman dan komputer yang melaksanakannya.

2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa

pemrograman.

3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama

karena algoritmanya sama.

21

Page 19: Bab ii atmega8

Beberapa hal yang perlu diperhatikan dalam membuat algoritma (Handrizal, 2008,

3):

1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.

Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah

dimengerti dan dipahami.

2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi

bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma

disebut notasi algoritmik.

3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik

sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks

program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam

notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik

tersebut berkorespondensi dengan notasi bahasa pemrograman secara

umum.

4. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu

pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer.

Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik

harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa

pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis

program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin

yang menjalannya.

5. Algoritma sebenarnya digunakan untuk membantu kita dalam

mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.

6. Algoritma merupakan hasil pemikiran konseptual, supaya dapat

dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam

notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan

pada translasi tersebut, yaitu:

1. Pendeklarasian variabel

Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam

penggunaan bahasa pemrograman apabila tidak semua bahasa

pemrograman membutuhkannya.

2. Pemilihan tipe data

22

Page 20: Bab ii atmega8

Apabila bahasa pemrograman yang akan digunakan membutuhkan

pendeklarasian variabel maka perlu hal ini dipertimbangkan pada

saat pemilihan tipe data.

3. Pemakaian instruksi-instruksi

Beberapa instruksi mempunyai kegunaan yang sama tetapi

masingmasing memiliki kelebihan dan kekurangan yang berbeda.

4. Aturan sintaksis

Pada saat menuliskan program kita terikat dengan aturan sintaksis

dalam bahasa pemrograman yang akan digunakan.

5. Tampilan hasil

Pada saat membuat algoritma kita tidak memikirkan tampilan hasil

yang akan disajikan. Hal-hal teknis ini diperhatikan ketika

mengkonversikannya menjadi program.

6. Cara pengoperasian compiler atau interpreter.

Bahasa pemrograman yang digunakan termasuk dalam kelompok

compiler atau interpreter.

23