BAB II SKRIPSI

38
BAB II DASAR TEORI 2.1 Sensor Sensor adalah suatu peralatan yang berfungsi untuk mendeteksi gejala – gejala atau sinyal – sinyal yang berasal dari perubahan suatu energi seperti energi listrik, energi fisika, energi kimia, energi biologi, energi mekanik dan sebagainya.Suatu peralatan yang memberitahukan kepada sistem kontrol tentang apa yang sebenarnya terjadi dinamakan sensor atau juga dikenal sebagai transduser. Sebagai contoh tubuh manusia mempunyai sistem sensor luar biasa yang memberitahukan kepada otak manusia secara terus menerus dengan gambar – gambar yang layak dan lengkap di sekitar lingkungan. Untuk sistem kontrol si pembuat harus memastikan parameter apa yang dibutuhkan untuk dimonitor sebagai contoh : posisi, temperatur, dan tekanan, kemudian tentukan sensor dan rangkaian data interface untuk melakukan perkerjaan ini. Sebagai contoh, kita ingin mengukur aliran cairan dalam suatu pipa dengan menggunakan flowmeter, atau kita ingin mengukur aliran secara tidak langsung dengan melihat seberapa lama cairan mengisi suatu tangki dengan ukuran tertentu. Kebanyakan sensor bekerja dengan mengubah beberapa parameter fisik seperti temparatur atau posisi 6

Transcript of BAB II SKRIPSI

BAB II

DASAR TEORI

2.1 Sensor

Sensor adalah suatu peralatan yang berfungsi untuk

mendeteksi gejala – gejala atau sinyal – sinyal yang

berasal dari perubahan suatu energi seperti energi

listrik, energi fisika, energi kimia, energi biologi,

energi mekanik dan sebagainya.Suatu peralatan yang

memberitahukan kepada sistem kontrol tentang apa yang

sebenarnya terjadi dinamakan sensor atau juga dikenal

sebagai transduser. Sebagai contoh tubuh manusia

mempunyai sistem sensor luar biasa yang memberitahukan

kepada otak manusia secara terus menerus dengan gambar

– gambar yang layak dan lengkap di sekitar lingkungan.

Untuk sistem kontrol si pembuat harus memastikan

parameter apa yang dibutuhkan untuk dimonitor sebagai

contoh : posisi, temperatur, dan tekanan, kemudian

tentukan sensor dan rangkaian data interface untuk

melakukan perkerjaan ini. Sebagai contoh, kita ingin

mengukur aliran cairan dalam suatu pipa dengan

menggunakan flowmeter, atau kita ingin mengukur

aliran secara tidak langsung dengan melihat seberapa

lama cairan mengisi suatu tangki dengan ukuran

tertentu. Kebanyakan sensor bekerja dengan mengubah

beberapa parameter fisik seperti temparatur atau posisi

6

ke dalam sinyal listrik. Ini sebabnya mengapa sensor

juga dikenal sebagai transduser yaitu suatu

peralatan yang mengubah energi dari satu bentuk ke

bentuk yang lain.

Untuk perencanaan sensor yang akan kami gunakan

adalah Weather Sensor Assembly no.seri p/n 80422. Sensor

ini dikeluarkan oleh sebuah perusahaan kecil Argent Data

System yang bertempat di santa maria California. Berikut

adalah gambar dari sensor tersebut :

Dari gambar diatas terdapat dua buah sensor yaitu

sensor arah dan kecepatan angin. Untuk sensor kecepatan

angin ini komponen didalamnya menggunakan magnetic reed

switch, dimana ketika kecepatan angin mencapai 1,492

Mph(2,4Km/h) akan menyebabkan sensor magnetic reed switch

ini menutup satu kali per detik. Sedangkan untuk sensor

7

Gambar 2.1. sensor arah dan kecepatan angin

arah angin, komponen didalamnya menggunakan delapan

switch yang terhubung dengan resistor berbeda-beda.

Sehingga memungkinkan sensor arah ini menunjukan ke

delapan arah mata angin. Berikut adalah gambar dan

tabel dari arah sensor angin.

No. Direction(Degrees)

Resistance(Ohms)

Voltage(V=5v, R=10k)

1 0 33k 3.84v2 22.5 6.57k 1.98v3 45 8.2k 2.25v4 67.5 891 0.41v5 90 1k 0.45v6 112.5 688 0.32v7 135 2.2k 0.90v8 157.5 1.41k 0.62v9 180 3.9k 1.40v10 202.5 3.14k 1.19v11 225 16k 3.08v12 247.5 14.12k 2.93v13 270 120k 4.62v14 292.5 42.12k 4.04v15 315 64.9k 4.78v16 337.5 21.88k 3.43v

8

Gambar 2.2. Rangkaian sensor arah angin

Tabel 2.1. Daftar tabel sensor arah angin

2.2 Mikrokontroler

Mikrokontroler merupakan suatu terobasan teknologi

mikroprosesor dan mikrokomputer yang merupakan

teknologi semikonduktor dengan kandungan transistor

yang lebih banyak namun hanya membutuhkan ruang yang

sangast kecil, Lebih lanjut, mikrokontroler merupakan

system computer yang mempunyai satu atau beberapa tugas

yang sangat spesifik, berbeda dengan PC (Personal

Computer ) yang memiliki beragam fungsi.

Tidak seperti sistem komputer yang mampu

menangani berbagai macam program aplikasi,

mikrokontrler hanya bisa digunakan untuk suatu aplikasi

tertentu saja, perbedaan lainnya terletak pada

perbandingan RAM dan ROM. Pada sistem komputer

perbandingan RAM dan ROM nya besar, artinya program-

program penggunba disimpan dalam ruang RAM yang

relative besar, sedangkan rutin-rutin antar muka

perangkat keras disimpan dalam ruang ROM yang kecil,

Sedangkan pada mikrokontroler, perbandingan ROM dan RAM

–nya yang besar, artinya program kontrol disimpan dalam

ROM (bias Masked ROM atau Flash PEROM) yang ukurannya

relatif lebih besar, sedangkan RAM digunakan sebagai

tempat penyimpanan sementara , termasuk register-

9

register yang digunakn pada mikrokontroler yang

bersangkutan.

2.2.1 Arsitektur Mikrokontroler ATMEGA8535

Mikrokontroller AVR (Alf and Vegard’s Risc processor)

memiliki arsitektur 8 bit, dimana semua instruksi

dikemas dalam kode 16-bit dan sebagian besar instruksi

dieksekusi dalam 1 siklus clock atau dikenal dengan

teknologi RISC (Reduced Instruction Set Computing). Secara

umum, AVR dapat dikelompokan ke dalam 4 kelas, yaitu

keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada

dasarnya yang membedakan masing-masing adalah kapasitas

memori, peripheral dan fungsinya. Dari segi arsitektur

dan instruksi yang digunakan, mereka bisa dikatakan

hampir sama. Berikut gambar arsitektur dari

mikrokontroler dari ATmega8535 :

10

2.2.2 Fungsi Pin - Pin Pada Mikrokontroler

ATMega8535

Konfigurasi pena (pin) mikrokontroler

ATMega8535 dengan kemasan 40-pin dapat dilihat

pada Gambar 2.3. Dari gambar tersebut dapat

terlihat ATMega8535 memiliki 8 pena untuk masing-masing

port A (Port A), port B(Port B), port C (Port C), dan

port D (Port D).

11

Gambar 2.3 Arsitektur mikrokontroler

atmega 8535

Secara umum konfigurasi dan fungsi pin

ATMega8535 dapat dijelaskan sebagai berikut

a. VCC 

Input sumber tegangan (+)

b. GND 

Ground (-)

c.  Port A (PA7 … PA0) 

12

Gambar 2.4 Mikrokontroler atmega 8535

Gambar 2.5 Konfigurasi pin mikrokontroler atmega

Berfungsi sebagai input analog dari ADC (Analog to

Digital Converter). Port ini juga berfungsi sebagai

port I/O dua arah, jika ADC tidak digunakan.

d.  Port B (PB7 … PB0)

 Berfungsi sebagai port I/O dua arah. Port PB5,

PB6 dan PB7 juga berfungsi sebagai MOSI, MISO dan

SCK yang dipergunakan pada proses downloading.

Fungsi lain port ini selengkapnya bisa dibaca pada

buku petunjuk ”AVR ATMega8535”.

e.  Port C (PC7 … PC0) 

Berfungsi sebagai port I/O dua arah. Fungsi lain

port ini selengk apnya bisa dibaca pada buku

petunjuk ”AVR ATMega8535”.

f.  Port D (PD7 … PD0) 

Berfungsi sebagai port I/O dua arah. Port PD0 dan

PD1 juga berfungsi sebagai RXD dan TXD, yang

dipergunakan untuk komunikasi serial. Fungsi lain

port ini selengkapnya bisa dibaca pad a buku

petunjuk ”AVR ATMega8535”.

g.  RESET 

Input reset.

h.  XTAL1 

Input ke amplifier inverting osilator dan input ke

sirkuit clock internal.

i. XTAL2 

Output dari amplifier inverting osilator.

13

j.  AVCC 

Input tegangan untuk Port A dan ADC.

k.  AREF 

Tegangan referensi untuk ADC.

2.2.3. Fitur Mikrokontroler ATMega8535

Adapun kapabilitas detail dari ATmega8535 adalah

sebagai berikut,

a.  Sistem mikroprosesor 8 bit berbasis RISC dengan

kecepatan maksimal 16 MHz.

b.  Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte,

danEEPROM (Electrically Erasable Programmable Read Only Memori)

sebesar 512 byte.

c. ADC internal dengan fidelitas 10 bit sebanyak

8 channel.

d.  Portal komunikasi serial (USART) dengan kecepatan

maksimal 2,5 Mbps.

e.  Enam pilihan mode sleep untuk menghemat penggunaan

daya listrik.

2.3 LCD

LCD (Liquid Cristal Display) adalah satu

layar bagian dari modul peraga yang menampilkan

karakter yang diinginkan. Layar LCD menggunakan dua

buah lembaran bahan yang dapat mempolarisasikan dan

Kristal cair diantara kedua lembaran tersebut. Arus

14

listrik yang melewati cairan menyebabkan kristal

merata sehingga cahaya tidak dapat melalui setiap

kristal, karenanya, seperti pengaturan cahaya,

menentukan apakah cahaya dapat melewati atau tidak.

Sehingga dapat mengubah bentuk Kristal cairnya

membentuk tampilan angka atau huruf pada layar.

Kegunaan LCD banyak sekali dalam perancangan suatu

sistem dengan menggunakan mikrokontroler. LCD dapat

berfungsi untuk menampilkan suatu nilai hasil sensor

,menampilkan teks, atau menampilkan menu pada

aplikasi mikrokontroller. Pada alat ini ukuran tipe

LCD yang digunakan adalah LCD 2x16, seperti gambar

dibawah ini :

Berikut tabel dan fungsi dari LCD :

15

Gambar 2.6 LCD 2 X 16

PIN Nama Fungsi

1 VSS Ground voltage

2 VCC +5V

3 VEE Contrast voltage

4 RS Register Select

0 = Instruction Register

1 = Data Register5 R/W Read/ Write, to choose write or read mode

0 = write mode

1 = read mode6 E Enable

0 = start to lacht data to LCD character

1= disable7 BPL Back Plane Light

8 GND Ground voltage

Tabel 2.2 Pin konfigurasi LCD 2 X 16

Display karakter pada LCD diatur oleh pin EN, RS

dan RW. Jalur EN dinamakan Enable. Jalur ini

digunakan untuk memberitahu LCD bahwa anda sedang

mengirimkan sebuah data. Untuk mengirimkan data ke

LCD, maka melalui program EN harus dibuat logika low

“0” dan set pada dua jalur kontrol yang lain RS dan

RW. Ketika dua jalur yang lain telah siap, set EN

dengan logika “1” dan tunggu untuk sejumlah waktu

tertentu ( sesuai dengan datasheet dari LCD tersebut

) dan berikutnya set EN ke logika low “0” lagi.

Jalur RS adalah jalur Register Select. Ketika RS

berlogika low “0”, data akan dianggap sebagai sebuah

16

perintah atau instruksi khusus ( seperti clear

screen, posisi kursor, dan lain-lain ). Ketika RS

berlogika high “1”, data yang dikirim adalah data

text yang akan ditampilkan pada display LCD. Sebagai

contoh, untuk menampilkan huruf “T” pada layar LCD

maka RS harus diset logika high“1”. Jalur RW adalah

jalur kontrol Read/Write. Ketika RW berlogika low

(0), maka informasi pada bus data akan dituliskan

pada layar LCD. Ketika RW berlogika high ”1”, maka

program akan melakukan pembacaan memori dari LCD.

Sedangkan pada aplikasi umum pin RW selalu diberi

logika low ”0”. Pada akhirnya, bus data terdiri dari

4 atau 8 jalur ( bergantung pada mode operasi yang

dipilih oleh user ). Pada kasus bus data 8 bit,

jalur diacukan sebagai DB0 sampai dengan DB7.

2.4 Komunikasi Data Serial

Komunikasi data serial sangatlah berbeda dengan

format pemindahan data pararel. Disini pengiriman bit-

bit tidak dilakukan sekaligus melalui saluran pararel,

tetapi setiap bit dikirimkan satu persatu melalui

saluran tunggal. Dalam pengiriman data secara serial

harus ada sinkronisasi atau penyesuaian antara pengirim

dan penerima agar data yang dikirimkan dapat diterima

dengan tepat dan benar oleh penerima. Dalam

komunikasi secara serial terdapat tiga macam mode

17

transmisi serial dalam mentransmisikan bit-bit data,

yaitu : synchronous, asynchronous dan isochronous saja

yang digunakan. Transmisi serial mode asynchronous

digunakan bila pengiriman data dilakukan satu karakter

tiap pengiriman. Antara satu karakter dengan yang

lainnya tidak ada waktu yang tetap. Karakter dapat

dikirimkan sekaligus ataupun beberapa karakter

kemudian berhenti untuk waktu yang tidak tertentu,

kemudian dikirimkan sisanya. Dengan demikian bit-bit

data ini dikirimkan dengan periode yang acak sehingga

pada sisi penerima data akan diterima kapan saja.

Adapun sinkronisasi yang terjadi pada transmisi serial

asynchronous adalah dengan memberikan bit-bit

pertanda awal dari data dan penanda akhir dari data

pada sisi pengirim maupun dari sisi penerima. Pada

prinsipnya, komunikasi serial ialah komunikasi dimana

pengiriman data dilakukan per bit, sehingga lebih

lambat dibandingkan komunikasi parallel seperti pada

port printer yang mampu mengirim 8 bit sekaligus dalam

sekali detak. Beberapa contoh komunikasi serial ialah

mouse, scanner dan sistem akuisisi data yang terhubung

ke port COM1/COM2.

2.4.1 IC MAX 485

MAX 485 adalah IC yang menjadi komponen

utama Modul SR-485 yang didisain untuk komunikasi data

18

secara bidirectional atau multipoint dengan Standard

ANSI EIA/TIA-422-B dan ITU V11. Data yang

ditransmisikan oleh IC ini dikirim dalam bentuk

perbedaan tegangan yang ada pada kaki A dan B dari

MAX485.

MAX485 berfungsi sebagai pengirim data

atau penerima data tergantung dari kondisi kaki-kaki

kontrolnya yaitu DE dan RE. Apabila kaki DE berlogika 0

dan RE berlogika 0, maka MAX485 berfungsi sebagai

penerima data sedangkan bila kaki DE berlogika 1 dan RE

berlogika 1 maka MAX485 berfungsi sebagai pengirim.

Berdasarkan pada Gambar 2.7, output dari Line Generator

dapat diambangkan (High Impedance) dengan memberikan “0”

pada input DE, kemampuan ini dimaksud untuk menunjang

keperluan dalam membentuk rangkaian saluran komunikasi

yang menghendaki pada saluran hanya boleh satu Line

Generator saja yang aktif. Perlu diingat bahwa level

tegangan sinyal-sinyal dari konektor DB 9 adalah level

tegangan RS232, sedangkan kaki-kaki DI, RO dan DE dari

IC MAX485 bekerja pada level tegangan TTL (Transistor

Transistor Logic), jadi komunikasi tidak dapat dilakukan

19

Gambar 2.7 Konfigurasi pin MAX 485

secara langsung, tetapi harus dengan bantuan IC MAX232

yang berfungsi sebagai pengalih tegangan. IC MAX485

berfungsi sebagai pengirim data atau penerima data

tergantung dari kondisi kaki-kaki kontrolnya yaitu DE

(Driver Output Enable) dan RE (Receiver Output Enable). Apabila

kaki DE berlogika 0 dan RE berlogika 0, maka IC MAX485

berfungsi sebagai penerima data sedangkan bila kaki DE

berlogika 1 dan RE berlogika 1 maka IC MAX485 berfungsi

sebagai pengirim.

2.4.2 DB9

Bagian yang sangat penting pada komunikasi serial

adalah DB9 dan RS232. DB9 merupakan konektor yang

digunakan untuk menghubungkan perangkat keras dengan

komputer. Konektor port serial DB9 pada komputer biasanya

disebut dengan COM1 dan COM2. Gambar 2.6 menunjukkan

gambar konektor serial dari DB9.

20

Gambar 2.8 Konektor serial DB9

Berdasarkan pada Gambar 2.8, berikut ini adalah

penjelasan singkat dari sinyal pin-pin DB9 yang

teruraikan dalam Tabel 2.4 :

Tabel 2.3 Deskripsi dan signal dari pin DB9

Pin Signal Pin Signal

1 Data Carrier Detect 6 Data Set Ready

2 Received Data 7 Request to Send

3 Transmitted Data 8 Clear to Send

4 Data Terminal Ready 9 Ring Indicator

5 Signal Ground

Pada tabel 2.3 menunjukan sinyal-sinyal yang ada

berdasarkan standar RS232. Berikut ini fungsi dari kaki

pin DB9, yaitu :

a. DCD (Data Carrier Detect) : sinyal ini akan aktif

jika suatu modem mendeteksi suatu “carrier” dari modem

lain.

b. RxD (Received Data) : digunakan untuk penerimaan

data serial.

c. TxD (Transmitted Data) : digunakan untuk

pengiriman data serial.

21

d. DTR (Data Terminal Ready) : digunakan untuk

memberitahukan modem bahwa UART (Universal Asynchronous

Receiver-Transmitter) siap melakukan hubungan

komunikasi.

e. GND : Sinyal Ground.

f. DSR (Data Set Ready) : digunakan untuk

memberitahukan UART bahwa modem siap melakukan hubungan

komunikasi (link).

g. RTS (Request to Send) : merupakan sinyal untuk

menginformasikan modem bahwa UART siap melakukan

pertukaran data.

h. CTS (Clear to Send) : digunakan untuk

memberitahukan bahwa modem siap untuk melakukan

pertukaran data.

i. RI (Ring Indicator) : sinyal ini akan aktif jika

modem mendeteksi adanya sinyal dering dari saluran

telepon.

2.5 Accu Kering

Aki atau Storage Battery adalah sebuah sel atau

elemen sekunder dan merupakansumber arus listrik searah

yang dapat mengubah energy kimia menjadi energy

listrik. Aki termasuk elemen elektrokimia yang dapat

mempengaruhi zat pereaksinya, sehingga disebut elemen

sekunder. Kutub positif aki menggunakan lempeng oksida

dan kutub negatifnya menggunakan lempeng timbale

22

sedangkan larutan elektrolitnya adalah larutan asam

sulfat. Beriku ini cara kerja saat baterai mengeluarkan

arus:

a. Oksigen (O) pada pelat positif terlepas karena

bereaksi/bersenyawa/bergabung dengan hidrogen (H) pada

cairan elektrolit yang secara perlahan-lahan keduanya

bergabung/berubah menjadi air (H20).

b. Asam (SO4) pada cairan elektrolit bergabung dengan

timah (Pb) di pelat positif maupun pelat negatif

sehigga menempel dikedua pelat tersebut.

Reaksi ini akan berlangsung terus sampai isi

(tenaga baterai) habis alias dalam keadaan discharge.

Pada saat baterai dalam keadaan discharge maka hampir

semua asam melekat pada pelat-pelat dalam sel sehingga

cairan eletrolit konsentrasinya sangat rendah dan

hampir melulu hanya terdiri dari air (H2O), akibatnya

berat jenis cairan menurun menjadi sekitar 1,1 kg/dm3

dan ini mendekati berat jenis air yang 1 kg/dm3.

Sedangkan baterai yang masih berkapasitas penuh berat

jenisnya sekitar 1,285 kg/dm3. Nah, dengan perbedaan

berat jenis inilah kapasitas isi baterai bisa diketahui

apakah masih penuh atau sudah berkurang yaitu dengan

menggunakan alat hidrometer. Hidrometer ini merupakan

salah satu alat yang wajib ada di bengkel aki (bengkel

yang menyediakan jasa setrum/cas aki ). Selain itu pada

saat baterai dalam keadaan discharge maka 85% cairan

23

elektrolit terdiri dari air (H2O) dimana air ini bisa

membeku, bak baterai pecah dan pelat-pelat menjadi

rusak. Berikut adalah contoh gambar dari accu kering :

Baterai yang menerima arus adalah baterai yang

sedang disetrum/dicas alias sedang diisi dengan cara

dialirkan listrik DC, dimana kutup positif baterai

dihubungkan dengan arus listrik positif dan kutub

negatif dihubungkan dengan arus listrik negatif.

Tegangan yang dialiri biasanya sama dengan tegangan

total yang dimiliki baterai, artinya baterai 12 V

dialiri tegangan 12 V DC, baterai 6 V dialiri tegangan

6 V DC, dan dua baterai 12 V yang dihubungkan secara

seri dialiri tegangan 24 V DC (baterai yang duhubungkan

seri total tegangannya adalah jumlah dari masing-maing

tegangan baterai: Voltase1 + Voltase2 = Voltasetotal).

Hal ini bisa ditemukan di bengkel aki dimana ada

beberapa baterai yang duhubungkan secara seri dan

semuanya disetrum sekaligus. Berapa kuat arus (ampere)

yang harus dialiri bergantung juga dari kapasitas yang

dimiliki baterai tersebut (penjelasan tentang ini bisa

ditemukan di bagian bawah). Konsekuensinya, proses

penerimaan arus ini berlawanan dengan proses

24

Gambar 2.9 Accu kering

pengeluaran arus, yaitu :1. Oksigen (O) dalam air (H2O)

terlepas karena bereaksi/bersenyawa/bergabung dengan

timah (Pb) pada pelat positif dan secara perlahan-lahan

kembali menjadi oksida timah colat (PbO2).2. Asam (SO4)

yang menempel pada kedua pelat (pelat positif maupun

negatif) terlepas dan bergabung dengan hidrogen (H)

pada air (H2O) di dalam cairan elektrolit dan kembali

terbentuk menjadi asam sulfat (H2SO4) sebagai cairan

elektrolit. Akibatnya berat jenis cairan elektrolit

bertambah menjadi sekitar 1,285 (pada baterai yang

terisi penuh). Sel aki terdiri atas timbal (Pb) sebagai

anode dan timbale dioksida (PbO2) sebagai katoda

kemudian kedua elektroda itu dicelupkan dalam larutan

asamsulfat (H2SO4). Kedua elektroda itu tidak perlu

dipisahkan dengan jembatan garam.

Reaksi elektrodanya adalah sebagai berikut :

Anoda Pb (-) : Pb + SO42- → PbSO4 + 2e– Katoda PbO2 (+)

: PbO2 + SO42- + 4H+ + 2e– → PbSO4 + 2H2O

Reaksi total : Pb + PbO2 + 4H+ + 2SO42- → 2PbSO4 + 2H2O

2.6 CodevisionAVR

Code VisionAVR pada dasarnya merupakan perangkat

lunak pemrograman mikrokontroler keluarga AVR berbasis

bahasa C. Ada tiga komponen penting yang telah

diintegrasikan dalam perangkat lunak ini: Compiler C,

IDE dan Program generator. Berdasarkan spesifikasi yang

25

dikeluarkan oleh perusahaan pengembangnya, Compiler C

yang digunakan hampir mengimplementasikan semua

komponen standar yang ada pada bahasa C standar ANSI

(seperti struktur program, jenis tipe data, jenis

operator, dan library fungsi standar-berikut

penamaannya). Tetapi walaupun demikian, dibandingkan

bahasa C untuk aplikasi komputer, compiler C untuk

mikrokontroler ini memiliki sedikit perbedaan yang

disesuaikan dengan arsitektur AVR tempat program C

tersebut ditanamkan (embedded). Khusus untuk library

fungsi, disamping library standar (seperti fungsi-

fungsi matematik, manipulasi String, pengaksesan memori

dan sebagainya), CodeVisionAVR juga menyediakan fungsi-

fungsi tambahan yang sangat bermanfaat dalam

pemrograman antarmuka AVR dengan perangkat luar yang

umum digunakan dalam aplikasi kontrol. Beberapa fungsi

library yang penting diantaranya adalah fungsi-fungsi

untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real

time Clock), sensor suhu LM75, SPI (Serial Peripheral

Interface) dan lain sebagainya. Untuk memudahkan

pengembangan program aplikasi, CodeVisionAVR juga

dilengkapi IDE yang sangat user friendly (lihat gambar

1.1). Selain menu-menu pilihan yang umum dijumpai pada

setiap perangkat lunak berbasis Windows, CodeVisionAVR

ini telah mengintegrasikan perangkat lunak downloader

(in system programmer) yang dapat digunakan untuk

26

mentransfer kode mesin hasil kompilasi kedalam sistem

memori mikrokontroller AVR yang sedang deprogram.

CodeVisionAVR 1.25.6 adalah suatu kompiler

berbasis bahasa C, yang terintegrasi untuk memprogram

dan sekaligus compiler aplikasi AVR (Alf and Vegard’s

Risc processor) terhadap mikrokontroler dengan sistem

berbasis window. CodeVisionAVR ini dapat

mengimplematasikan hampir semua interuksi bahasa C yang

sesuai dengan arsitektur AVR, bahkan terdapat beberapa

keunggulan tambahan untuk memenuhi keunggulan

spesifikasi dari CodeVisionAVR yaitu hasil kompilasi

studio debugger dari ATMEL.

Integrated Development Environtment (IDE) telah

diadaptasikan pada chip AVR yaitu In-System Programmer

software, memungkinkan programmer untuk mentransfer

program ke chip mikrokontroler secara otomatis setelah

proses assembly/kompilasi berhasil. In-System

Programmer software didesign untuk bekerja dan dapat

berjalan dengan perangkat lunak lain seperti AVR

Dragon, AVRISP, Atmel STK500, dan lain sebagainya.

Disamping library standar C, CodeVisionAVR C compiler

memiliki librari lain untuk:

Modul LCD Alpanumerik

Delays

Protokol semikonduktor Maxim/Dallas

Dan lainnya

27

CodeVisionAVR juga memiliki CodeWizardAVR sebagaki

generator program otomatis, yang memungkinkan kita

untuk menulis, segala bentuk pengaturan Chip dalam

waktu singkat, dan semua kode yang dibutuhkan untuk

mengimplementasikan fungsi-fungsi seperti :

2.6.1 Pengaturan akses External Memory

Untuk chip-chip AVR yang memungkinkan koneksi

memori eksternal SRAM, dapat juga mengatur ukuran

memori dan wait state (tahap tunggu) dari memori ketika

memori tersebut diakses.

2.6.2 Identifikasi chip reset source

Adalah suatu layanan dimana kita dapat membuat

kode secara otomatis yang dapat mengidentifikasi

kondisi yang menyebabkan chip di reset.

2.6.3 Inisialisasi port input/output

Pengaturan port-port yang kan dijadikan gerbang

masukan dan keluaran dapat secara otomatis digenerate

codenya. Yang kita lakukan hanya memilih port-port yang

akan digunakan sebagai input atau output.

2.6.4. Inisialisasi Interupsi external

Pengaturan interupsi eksternal yang nantinya akan

digunakan untuk menginterupsi program utama 

28

2.6.5 Inisialisasi timers/counters

Pengaturan timers yang berfungsi untuk mengatur

frekwensi yang nantinya digunakan pada interupsi.

2.5.6 Inisialisasi timer watchdog

Pengaturan timers yang berfungsi untuk mengatur

frekwensi yang nantinya digunakan pada interupsi,

sehingga interupsi akan dilayani oleh suatu fungsi

wdt_timeout_isr.

2.6.7 Inisialisasi UART(USART) dan komunuikasi

serial 

Pengaturan komunikasi serial sebagai penerima atau

pengirim data.

2.6.8 Inisialisasi komparasi analog

Pengaturan yang berkaitan dengan masukan data yang

digunakan dalam aplikasi yang membutuhkan komparasi

pada ADC nya.

2.6.9 Inisialisasi ADC

Pengaturan ADC(Analog-Digital Converter) yang

berfungsi untuk merubah format analog menjadi format

digital untuk diolah lebih lanjut.

29

2.6.10 Inisialisasi antarmuka SPI

Pengaturan chip yang berkaitan dengan Clock rate,

Clock Phase, dan lainnya.

2.6.11 Inisialisasi antarmuka Two Wire BUS

Pengaturan Chip yang berhubungan dengan pola jalur

komunikasi antara register yang terdapat pada chip

AVR. 

2.6.12 Inisialisasi antarmuka CAN

Pengaturan chip yang lebih kompleks, yang dapat

mengatur interupsi, transmisi data, timers, dan

lainnya.

2.6.13 Inisialisasi sensor temperatur, thermometer,

dan lainnya

Pengaturan yang berhubungan dengan sensor

temperatur one wire bus, memiliki fungsi-fungsi yang

ada pada librari CodeVisionAVR.

2.6.14 Inisialisasi one wire bus

Pengaturan yang berhubungan dengan sensor

temperatur yang memiliki fungsi-fungsi yang ada pada

librari CodeVisionAVR. Seperti Maxim/Dallas

Semiconductor.

30

2.6.15 Inisialisasi modul LCD

Pengaturan port-port yang kan digunakan sebagai

penghubung dengan LCD alphanumerik.

Selain bentuk konfigurasi hadware yang nantinya

secara otomatis akan membentuk sebuah instruksi

layaknya perintah program ke IC/Chip, adapula perintah

program yang kita ketik sendiri. Selain itu,

CodeVisionAVR juga menyediakan sebuah tool yang

dinamakan dengan Code Generator atau CodeWizardAVR

(lihat gambar 2.1). Secara praktis, tool ini sangat

bermanfaat membentuk sebuah kerangka program

(template), dan juga memberi kemudahan bagi programmer

dalam peng-inisialisasian register-register yang

terdapat pada mikrokontroler AVR yang sedang diprogram.

Dinamakan Code Generator, karena perangkat lunak

CodeVision ini akan membangkitkan kode-kode program

secara otomatis setelah fase inisialisasi pada jendela

CodeWizardAVR selesai dilakukan. Secara teknis,

penggunaan tool ini pada dasarnya hampir sama dengan

application wizard pada bahasa-bahasa pemrograman

Visual untuk komputer (seperti Visual C, Borland

Delphi, dan sebagainya). Disamping versi yang komersil,

Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR

versi Demo yang dapat didownload dari internet secara

31

gratis (lihat alamat URL: http://www.hpinfotech.ro)

Dalam versi ini, memori flash yang dapat diprogram

dibatasi maksimal 2K, selain itu tidak semua fungsi

library yang tersedia dapat dipanggil secara bebas.

Seperti halnya belajar pemrograman komputer, agar

mendapatkan pemahaman yang kuat dalam pemrograman

mikrokontroler AVR, anda sebaiknya mencoba langsung

membuat aplikasi program pada mikrokontroler tersebut.

Untuk tujuan latihan, perangkat lunak CodevisionAVR

versi demo pada dasarnya adalah sarana yang cocok dan

telah cukup memenuhi kebutuhan minimal anda. Gambar

1.4. berikut memperlihatkan diagram blok yang

mengilustrasikan alur pemrograman mikrokontroler AVR

dengan CodevisionAVR yang dapat anda lakukan :

Seperti terlihat pada gambar 2.10 CodevisionAVR

pada dasarnya telah mengintegrasikan komponen-komponen

penting dalam pemrograman microcontroller AVR:

Editor,Compiler C, assembler dan ISP (In System

32

Gambar 2.10 Alur pemrograman dengan

CodevisionAVR

Programmer). Khusus dengan ISP, ada beberapa jenis

perangkat keras programmer dongle (berikut papan

pengembangnya) yang telah didukung oleh perangkat lunak

CodevisionAVR ini, salah satu diantaranya adalah Kanda

System STK 200/300 produk Perusahaan Kanda yang

terhubung pada saluran antarmuka port paralel komputer.

Jika anda berencana membuat dongle yang kompatible

dengan produk Kanda, rangkaiannya dapat dilihat pada

situs:http:\\www.grandtonics.com. Atau jika mau membeli

sistem yang siap pakai (berupa dongle beserta papan

pengembangnya), salah satu produk dalam negeri dengan

harga yang relative murah adalah DT AVR nano/micro

System dialamat

URL:http//www.innovative_electronic.com., Sistem ini

kompatibel dengan kanda System STK 200/300. Untuk

tujuan-tujuan percobaan, produk innovative_electronic

ini sudah sangat memadai, selain mudah dihubungkan

dengan modul-modul perangkat input/output, seperti

modul LCD, keypad, array LED, penggerak motor stepper,

dan sebagainya, sistem ini juga telah dilengkapi

konverter TTL ke RS232 yang bermanfaat untuk komunikasi

microcontroller AVR dengan komputer.

Berkaitan dengan perangkat lunak downloader, pada

dasarnya anda dapat menggunakan perangkat lunak lain

(di luar CodeVisionAVR) untuk keperluan transfer kode

33

mesin kedalam sistem memori microcontroller AVR. Salah

satunya adalah ISP_AVR yang dibuat oleh Holger Buss dan

Ingo Busker dari Jerman.

2.7 Program Delphi

Delphi adalah sebuah bahasa pemrograman dan

lingkungan pengembangan perangkat lunak. Produk ini

dikembangkan oleh Borland. Dengan menggunakan Free

Pascal yang merupakan proyek opensource, bahasa ini

dapat pula digunakan untuk membuat program yang

berjalan di sistem operasi Mac OS X dan Windows CE.

Keunggulan bahasa pemrograman ini terletak pada

produktivitas, kualitas, pengembangan perangkat lunak,

kecepatan kompilasi, pola desain yang menarik yang

menarik serta diperkuat dengan pemrogramannya yang

terstruktur.

Langkah-Langkah Menjalankan Delphi : :

a. Klik tombol START

b. Pilih All Programs

c. Pilih Borland Delphi 7

d. Klik Delphi 7

2.7.1 IDE (Integrated Development Environment)

Delphi

34

Lingkungan pengembangan terpadu atau Integrated

Development Environment (IDE) adalah bagian dari Delphi

yang digunakan untuk memungkinkan pemrograman secara

visual merancang tampilan untuk para user (antarmuka

pemakai) dan menuliskan listing program atau kode.

2.7.2 Menu bar

Berfungsi untuk memilih tugas-tugas tertentu,

seperti memulai, membuka, dan menyimpan project,

mengompilasi project menjadi file executable (EXE), dan

lain-lain.

2.7.3 Tool Bar/Speed Bar

35

Gambar 2.11 IDE delphi 7.0

Gambar 2.12 Menu bar delphi 7.0

Memiliki fungsi yang sama seperti menu bar, tetapi

berfungsi seperti jalan pintas karena lebih praktis

dalam penggunaannya.

2.7.4 Component Palette

Component Palette berisi kumpulan ikon yang

melambangkan komponen-komponen yang terdapat pada VCL

(Visual Component Library). Pada Component Palette, akan

ditemukan beberapa page control, seperti Standard,

Additional, Win32, System, Data Access dan lain-lain.

Ikon tombol pointer terdapat di setiap page control.

2.7.5 Form

Form Designer merupakan suatu objek yang

dapat dipakai sebagai tempat untuk merancang program

aplikasi. Form berbentuk sebuah meja kerja yang dapat

diisi dengan komponen-komponen yang diambil dari

Component Palette.

36

Gambar 2.13 Tool / Speed bar delphi 7.0

Gambar 2.14 Component pallete delphi 7.0

2.7.6 Object Inspector

Object Inspector digunakan untuk mengubah

properti dan karakteristik dari sebuah komponen. Object

Inspector terdiri dari dua tab, yaitu Properties dan

Events. Tab Properties digunakan untuk mengubah

properti komponen. Proerti dengan tanda + menunjukkan

bahwa propeti tersebut mempunyai subproperti. Tab

Events, bagian yang dapat diisi dengan kode program

tertentu yang berfungsi unuk menangani event - event

(kejadian- kejadian yang berupa sebuah procedure) yang

dapat direspon oleh sebuah komponen.

37

Gambar 2.15 Form delphi 7.0

2.7.7 Object Tree View

Object Tree View menampilkan diagram pohon dari

komponen -komponen yang bersifat visual maupun

nonvisual yang telah terdapat dalam form, data module,

atau frame. Object Tree View juga menampilkan hubungan

logika antar komponen.

2.7.8 Code Editor

Code Editor merupakan tempat menuliskan kode program

atau pernyataan - pernyataan dalam Object Pascal. Code

38

Gambar 2.16 Object inspector delphi 7.0

Gambar 2.17 Object tree view delphi 7.0

Editor dilengkapi dengan fasilitas highlight yang

memudahkan pemakai menemukan kesalahan.

Title bar yang terletak pada bagian atas jendela code

editor menunjukkan nama file yang sedang disunting,

serta pada bagian informasi yang perlu untuk

diperhatikan, yaitu :

a. Nomor baris / kolom yang terletak pada bagian

paling kiri. Bagian ini berfungsi untuk

menunjukkan posisi kursor di dalam jendela Code

Editor. Modified menunjukkan bahwa file yang sedang

disunting telah mengalami perubahan tersebut belum

disimpan. Teks ini akan hilang jika telah

menyimpan perubahan.

b. Insert / Overwrite yang terletak pada bagian

paling kanan menunjukkan bahwa modus pengetikan

teks dalam jendela Code Editor. Insert menunjukkan

bahwa modus penyisipan teks dalam keadaan aktif,

sedangkan Overwrite menunjukkan bahwa modus

penimpaan teks dalam keadaan aktif.

39

Gambar 2.18 Code editor delphi 7.0

2.7.9 Langkah-langkah Awal Membuat Object

Pilih menu File – New – Applications sehingga pada

lembar kerja Delphi akan tampak sebuah form kosong.

a. Simpan rancangan proyek program aplikasi yang

masih kosong tersebut dengan perintah File – Save

All sehingga tampil kotak dialog Save Unit1 As

seperti yang tampak pada gambar 2.15.

b. Pilih lokasi penyimpanan, kemudian kotak

dialog berikutnya yang akan muncul adalah kotak

dialog Save Project1 As seperti yang tampak pd

gambar 2.16.

40

Gambar 2.19 Save unit1 as delphi 7.0

c. Setelah menyimpan file Unit dan Project

ke harddisk, maka Delphi akan membentuk file-file

berikut:

1). project1.dpr, file project yang

berisi program utama dari aplikasi.

2). unit1.pas, file unit yg

digunakan utk menangani kejadian pada form.

3). unit1.dfm, file yg berisi

daftar komponen berikut properti nya.

d. Setelah menyimpan project ini, jalankan

dengan cara memilih menu Run. Klik tombol Run atau

tekan tombol F9.

41

Gambar 2.20 Save project1 as delphi 7.0

Display karakter pada LCD diatur oleh pin EN, RS dan

RW. Jalur EN dinamakan Enable. Jalur ini digunakan

untuk memberitahu LCD bahwa anda sedang mengirimkan

sebuah data. Untuk mengirimkan data ke LCD, maka

melalui program EN harus dibuat logika low “0” dan set

pada dua jalur kontrol yang lain RS dan RW. Ketika dua

jalur yang lain telah siap, set EN dengan logika “1”

dan tunggu untuk sejumlah waktu tertentu ( sesuai

dengan datasheet dari LCD tersebut ) dan berikutnya set

EN ke logika low “0” lagi. Jalur RS adalah jalur

Register Select. Ketika RS berlogika low “0”, data akan

dianggap sebagai sebuah perintah atau instruksi khusus

( seperti clear screen, posisi kursor, dan lain-lain ).

Ketika RS berlogika high “1”, data yang dikirim adalah

data text yang akan ditampilkan pada display LCD.

Sebagai contoh, untuk menampilkan huruf “T” pada layar

LCD maka RS harus diset logika high“1”. Jalur RW adalah

42

Gambar 2.21 Run delphi 7.0

Tabel 2.17 Pin dan Fungsi

jalur kontrol Read/Write. Ketika RW berlogika low (0),

maka informasi pada bus data akan dituliskan pada layar

LCD. Ketika RW berlogika high ”1”, maka program akan

melakukan pembacaan memori dari LCD. Sedangkan pada

aplikasi umum pin RW selalu diberi logika low ”0”. Pada

akhirnya, bus data terdiri dari 4 atau 8 jalur

( bergantung pada mode operasi yang dipilih oleh

user ). Pada kasus bus data 8 bit, jalur diacukan

sebagai DB0 sampai dengan DB7.

43