Pengaturan Alat – Alat Listrik Rumah Tangga Berbasis Mikrokontroller Atmega8535 Melalui Handphone

16

DASAR TEORI

2.1 MODUL GSM

HP (Handphone) dengan fasilitas SMS-nya akan sangat berguna jika kita dapat
mengaplikasikannya ke dalam suatu sistem pengendali yang terintegrasi, dimana nantinya
pengendalian serta pengaksesan informasi keadaan lampu ruangan yang dilakukan oleh seseorang
dapat dilakukan via SMS.

Sekarang telah banyak alat pengendali lampu rumah jarak jauh menggunakan remote
dengan media infra merah maupun gelombang lain, namun masih jarang yang dapat
mengendalikan peralatan lampu rumah jika berada di tempat yang jauh dengan memanfaatkan
fasilitas provider GSM. Maka perancangan pengendalian lampu jarak jauh ini mencoba
menggunakan fasilitas SMS pada telepon seluler, yang diharapkan dapat mengendalikan
(memadamkan/menyalakan) dan mendeteksi status lampu melalui jarak jauh dari daerah manapun
asal masih terjangkau sinyal operator GSM.

Global System for Mobile communication (GSM) adalah sebuah standar global untuk
komunikasi bergerak digital. GSM adalah nama dari sebuah group standarisasi telpon bergerak

selular di Eropa yang beroperasi pada daerah frekunensi 900 MHz. GSM saat ini banyak digunakan
di negara-negara di dunia.

Informasi sangat penting dalam suatu organisasi, informasi memperkaya penyajian,
pengetahuan, suatu yang penerimanya tidak tahu, Suatu sistem yang kurang mendapat informasi
akan menjadi luruh, kerdil dan akhirnya akan berakhir. Apakah sebenarnya informasi itu, sehingga
sangat penting artinya bagi suatu sistem. Informasi (information) dapat didefinisikan sebagi data
yang diolah menjadi bentuk yang lebih berguna dan lebih berarti bagi yang menerimanya.

2.1.1 Konsep Dasar SMS (Short Message Service)

Universitas Sumatera Utara

17

Short Message Service (SMS) adalah sebuah layanan yang banyak diaplikasikan pada
sistem komunikasi tanpa kabel (wireless), yang memungkinkan kita untuk melakukan pengiriman
pesan dalam bentuk alphanumeric antara terminal pelanggan dengan sistem eksternal seperti email, paging, voice mail, dan lain-lain. SMS mulai diperkenalkan di eropa sejak tahun 1991 dengan
adanya standardisasi dalam bidang wireless digital yang disebut Global System for Mobile
Communication (GSM). GSM adalah sistem pelopor seluler yang dikembangkan secara universal

oleh European Telecomunication Standards Institute (ETSI) dan dengan GSM inilah aplikasi SMS
dapat dijalankan.

Mekanisme dalam sistem SMS adalah melakukan pengiriman short message dari terminal
pelanggan ke terminal lain. Layanan SMS merupakan sebuah layanan yang bersifat nonreal time
dimana sebuah short message dapat di-submit ke suatu tujuan, tidak peduli apakah tujuan tersebut
aktif atau tidak. Bila dideteksi bahwa tujuan tidak aktif, maka sistem akan menunda pengiriman
ke tujuan hingga tujuan aktif kembali. Prinsip dasar sistem SMS akan menjamin delivery dari short
message hingga sampai tujuan. Kegagalan pengiriman yang bersifat sementara seperti tujuan tidak
aktif akan selalu teridentifikasi sehingga pengiriman ulang short message akan selalu dilakukan
kecuali bila aturan bahwa short message yang telah melampaui batas waktu tertentu harus dihapus
dan dinyatakan gagal dikirim.
Karakteristik utama SMS adalah SMS merupakan sebuah sistem pengiriman data dalam
paket yang bersifat out-of-band dengan bandwidth yang kecil. Dengan karakteristik ini,
pengiriman dengan suatu burst data yang pendek dapat dilakukan dengan efesiensi yang sangat
tinggi. contoh modul GSM ditunjukkan pada Gambar 2.1 :

Universitas Sumatera Utara

18


Gambar 2.1 Modul GSM

2.2 RELAY
Relay berfungsi untuk menghubungkan atau memutus aliran arus listrik yang dikontrol dengan
memberikan tegangan dan arus tertentu pada koilnya. Relay biasanya hanya mempunyai satu kumparan
tetapi relay dapat mempunyai beberapa kontak. Dalam memutus atau menghubungkan kontak digerakkan
oleh fluksi yang ditimbulkan dari adanya medan magnet listrik yang dihasilkan oleh kumparan yang melilit
pada besi lunak. Contoh Gambar relay pin 8 pada Gambar 2.2

Gambar 2.2 Relay 8 Pin

Universitas Sumatera Utara

19

2.2.1 Prinsip Kerja Relay

Kontak Normally Open akan membuka ketika tidak ada arus mengalir pada kumparan, tetapi
tertutup secepatnya setelah kumparan menghantarkan arus atau diberi tenaga. Kontak normally Close akan

tertutup apabila kumparan tidak diberi tenaga dan membuka ketika kumparan diberi daya. Masing-masing
kontak biasanya digambarkan sebagai kontak yang tampak dengan kumparan tidak diberi tanaga atau daya.
Contoh relay elektromekanis pada Gambar 2.3 :

Kontak NO
(Normally Open)
Kontak NC
(Normally Close)
CR 2
Simbol
CR1
Simbol
Coil Relay

CR
Simbol

Gambar 2.3 Relay Elektromekanis

2.3 Mikrokontroler ATMEGA8535


Tidak seperti system komputer, yang mampu menangani berbagai macam program aplikasi (misalnya
pengolah kata, pengolah angka dan lain sebagainya), mikrokontroler hanya bisa digunakan untuk satu
aplikasi tertentu saja. Perbedaan lainnya terletak pada perbandingan RAM-nya dan ROM. Pada system
computer perbandingan RAM dan ROM-nya besar, artinya program-program pengguna disimpan dalam
ruang RAM yang relative besar, sedangkan rutin-rutin antarmuka perangkat keras disimpan dalam ruang
ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya
program control disimpan dalam ROM (bisa Masked ROM atau Flash PEROM) yang ukurannya relatif

Universitas Sumatera Utara

20

lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan sementara, termasuk register-register
yang digunakan pada mikrokontroler yang bersangkutan.
2.3.1 Arsitektur Mikrokontroler AVR ATMega8535

AVR termasuk kedalam jenis mikrokontroler RISC (Reduced Instruction Set Computing) 8 bit.
Berbeda dengan mikrokontroler keluarga MCS-51 yang berteknologi CISC (Complex Instruction Set
Computing). Pada mikrokontroler dengan teknologi RISC semua instruksi dikemas dalam kode 16 bit (16

bits words) dan sebagian besar instruksi dieksekusi dalam 1 clock, sedangkan pada teknologi CISC seperti
yang diterapkan pada mikrokontroler MCS-51, untuk menjalankan sebuah instruksi dibutuhkan waktu
sebanyak 12 siklus clock.contoh arsitektur ATMega 8535 pada Gambar 2.4
Secara garis besar, arsitektur mikrokontroler ATMega8535 terdiri dari :

1. 32 saluran I/O (Port A, Port B, Port C dan Port D)
2. 10 bit 8 Channel ADC (Analog to Digital Converter)
3. 4 Channel PWM
4. 6 Sleep Modes : Idle, ADC Noise Reduction, Power-save, Power-Down, Standby and
Extended Standby
5. 3 buah timer/counter.
6. Analog Compararator
7. Watchdog timer dengan osilator internal
8. 512 byte SRAM
9. 512 byte EEPROM
10. 8 kb Flash memory dengan kemampuan Read While Write
11. Unit interupsi (internal dan external)
12. Port antarmuka SPI8535 “memory map”
13. Port USART untuk komunikasi serial dengan kecepatan maksimal 2,5 Mbps
14. 4,5 V sampai 5,5 V operation, 0 sampai 16 MHz


Universitas Sumatera Utara

21

Gambar 2.4 Arsitektur ATMEGA8535

Universitas Sumatera Utara

22

2.3.2 Peta Memory ATMega8535

ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah.
Memori data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte
SRAM internal.

Register untuk keperluan umum menempati space data pada alamat terbawah yaitu $00 sampai
$1F. Sementara itu register khusus untuk menangani I/O dan kontrol terhadap mikrokontroler menempati
64 alamat berikutnya, yaitu mulai dari $20 sampai $5F. Register tersebut merupakan register yang khusus

digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register,
timer/counter, fungsi fungsi I/O, dan sebagainya. Register khusus alamat memori secara lengkap dapat
dilihat pada gambar 2.5 dibawah . Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada
lokasi $60 sampai dengan $25F.

Gambar 2.5 Memori AVR ATMega8535

Universitas Sumatera Utara

23

Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512
byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
2.3.3 Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan
ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler. Contoh
status register pada gambar 2.6

Gambar 2.6 Status Register


Status Register ATMega8535
1. Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis interupsi.
2. Bit6 --> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T sebagai sumber atau
tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan
instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan
menggunakan instruksi BLD.
3. Bi5 --> H (Half Cary Flag)
4. Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen
dua overflow).
5. Bit3 --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi
matematis.
6. Bit2 --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan
bilangan negatif.
7. Bit1 --> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan
bilangan 0.
8. Bit0 --> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.

Universitas Sumatera Utara

24


2.3.4 Konfigurasi Pin Mikrokontroler AVR ATMEGA8535
Mikrokontroler ATMega8535 memiliki 40 pin untuk model PDIP, dan 44 pin untuk model
TQFP dan PLCC. Contoh gambar IC Mikrokontroler ATMega 8535 pada gambar 2.7
Nama-nama pin pada mikrokontroler ini adalah :
1. VCC : merupakan pin yang berfungsi sebagai pin masukan catu daya
2. GND : merupakan pin ground.
3. Port A (PA0...PA7) : merupakan pin I/O dan pin masukan ADC
4. Port B (PB0 – PB7) : merupakan akan pin I/O dua arah dan pin fungsi khusus, yaitu
sebagai Timer/Counter, komperator analog dan SPI.
5. Port C (PC0 – PC7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu TWI,
komperator analog, input ADC dan Timer Osilator.
6. Port D (PD0 – PD7) : merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komperator
analog, interupsi eksternal dan komunikasi serial.
7. RESET : merupakan pin yang digunakan untuk mereset mikrokontroler.
8. XTAL1 dan XTAL2 : merupakan pin masukan clock eksternal.
9. AVCC : merupakan pin masukan tegangan untuk ADC.
10. AREF : merupakan pin tegangan referensi ADC

Universitas Sumatera Utara


25

Gambar 2.7 IC Mikrokontroler ATMEGA8535

Deskripsi pin-pin pada mikrokontroler ATMega8535 :

1. Port A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat
diatur per bit). Output buffer Port A dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port A (DDRA) harus disetting terlebih dahulu sebelum Port A
digunakan. Bit-bit DDRA diisi 0 jika ingin memfungsikan pin-pin port A yang bersesuaian sebagai input,
atau diisi 1 jika sebagai output. Selain itu, kedelapan pin port A juga digunakan untuk masukan sinyal
analog bagi A/D converter.

Universitas Sumatera Utara

26

2. Port B
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat
diatur per bit). Output buffer Port B dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port B (DDRB) harus disetting terlebih dahulu sebelum Port B
digunakan. Bit-bit DDRB diisi 0 jika ingin memfungsikan pin-pin port B yang bersesuaian sebagai input,
atau diisi 1 jika sebagai output. Pin-pin port B juga memiliki untuk fungsi-fungsi alternatif khusus seperti
yang dapat dilihat dalam tabel berikut.

Tabel 2.1 Fungsi Pin-pin Port B

Port Pin Fungsi Khusus
PB0

T0 = timer/counter 0 external counter input

PB1

T1 = timer/counter 0 external counter input

PB2

AIN0 = analog comparator positive input

PB3

AIN1 = analog comparator negative input

PB4

SS = SPI slave select input

PB5

MOSI = SPI bus master output / slave input

PB6

MISO = SPI bus master input / slave output

PB7

SCK = SPI bus serial clock

3. Port C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat
diatur per bit). Output buffer Port C dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port C (DDRC) harus disetting terlebih dahulu sebelum Port C
digunakan. Bit-bit DDRC diisi 0 jika ingin memfungsikan pin-pin port C yang bersesuaian sebagai input,

Universitas Sumatera Utara

27

atau diisi 1 jika sebagai output. Selain itu, dua pin port C (PC6 dan PC7) juga memiliki fungsi alternatif
sebagai oscillator untuk timer/counter 2.

4. Port D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan internal pull-up resistor (dapat
diatur per bit). Output buffer Port D dapat memberi arus 20 mA dan dapat mengendalikan display LED
secara langsung. Data Direction Register port D (DDRD) harus disetting terlebih dahulu sebelum Port D
digunakan. Bit-bit DDRD diisi 0 jika ingin memfungsikan pin-pin port D yang bersesuaian sebagai input,
atau diisi 1 jika sebagai output. Selain itu, pin-pin port D juga memiliki untuk fungsi-fungsi alternatif
khusus seperti yang dapat dilihat dalam tabel berikut.

Tabel 2.2 Fungsi Pin-pin Port D

Port Pin Fungsi Khusus
PD0

RDX (UART input line)

PD1

TDX (UART output line)

PD2

INT0 ( external interrupt 0 input )

PD3

INT1 ( external interrupt 1 input )

PD4

OC1B (Timer/Counter1 output compareB match output)

PD5

OC1A (Timer/Counter1 output compareA match output)

PD6

ICP (Timer/Counter1 input capture pin)

PD7

OC2 (Timer/Counter2 output compare match output)

Universitas Sumatera Utara

28

5. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi masukan low selama minimal 2 machine
cycle maka system akan di-reset.

6. XTAL1
XTAL1 adalah masukan ke inverting oscillator amplifier dan input ke internal clock operating circuit.

7. XTAL2
XTAL2 adalah output dari inverting oscillator amplifier.

8. AVcc
Avcc adalah kaki masukan tegangan bagi A/D Converter. Kaki ini harus secara eksternal terhubung ke Vcc
melalui lowpass filter.

9. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk operasionalisasi ADC, suatu level
tegangan antara AGND dan Avcc harus dibeikan ke kaki ini.

10. AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND, kecuali jika board memiliki anlaog
ground yang terpisah.

Universitas Sumatera Utara

29

2.4

Sensor Optocoupler

2.4.1

Pengertian Optocoupler

Optocoupler adalah suatu piranti yang terdiri dari 2 bagian yaitu transmitter dan receiver,
yaitu antara bagian cahaya dengan bagian deteksi sumber cahaya terpisah. Biasanya optocoupler
digunakan sebagai saklar elektrik, yang bekerja secara otomatis. Optocoupler atau optoisolator
merupakan komponen penggandeng (coupling) antara rangkaian input dengan rangkaian output
yang menggunakan media cahaya (opto) sebagai penghubung. Dengan kata lain, tidak ada bagian
yang konduktif antara kedua rangkaian tersebut. Optocoupler sendiri terdiri dari 2 bagian, yaitu
transmitter (pengirim) dan receiver (penerima).
1. Transmiter
Merupakan bagian yang terhubung dengan rangkaian input atau rangkaian kontrol. Pada
bagian ini terdapat sebuah LED infra merah (IR LED) yang berfungsi untuk mengirimkan sinyal
kepada receiver. Padatransmitter dibangun dari sebuah LED infra merah. Jika dibandingkan
dengan menggunakan LED biasa, LED infra merah memiliki ketahanan yang lebih baik terhadap
sinyal tampak. Cahaya yang dipancarkan oleh LED infra merah tidak terlihat oleh mata telanjang.
2. Receiver
Merupakan bagian yang terhubung dengan rangkaian output atau rangkaian beban, dan
berisi komponen penerima cahaya yang dipancarkan oleh transmitter. Komponen penerima cahaya
ini dapat berupa photodioda atapun phototransistor. Pada bagian receiver dibangun dengan dasar
komponen phototransistor. Phototransistor merupakan suatu transistor yang peka terhadap tenaga
cahaya. Suatu sumber cahaya menghasilkan energi panas, begitu pula dengan spektrum infra
merah. Karena spekrum infra mempunyai efek panas yang lebih besar dari cahaya tampak, maka
phototransistor lebih peka untuk menangkap radiasi dari sinar infra merah.

Universitas Sumatera Utara

30

Jika dilihat dari penggunaannya, optocoupler biasa digunakan untuk mengisolasi common
rangkaian input dengan common rangkaian output. Sehingga supply tegangan untuk masing-masing
rangkaian tidak saling terbebani dan juga untuk mencegah kerusakan pada rangkaian kontrol (rangkaian
input). Contoh bentuk fisik sensor optocoupler pada gambar 2.8

Gambar 2.8 Bentuk fisik Sensor Optocoupler

Optocoupler merupakan gabungan dari LED infra merah dengan fototransistor yang
terbungkus menjadi satu chips. Cahaya infra merah termasuk dalam gelombang elektromagnetik
yang tidak tampak oleh mata telanjang. Sinar ini tidak tampak oleh mata karena mempunyai
panjang gelombang berkas cahaya yang terlalu panjang bagi tanggapan mata manusia. Sinar infra
merah mempunyai daerah frekuensi 1 x 1012 Hz sampai dengan 1 x 1014 GHz atau daerah
frekuensi dengan panjang gelombang 1µm – 1mm. LED infra merah ini merupakan komponen
elektronika yang memancarkan cahaya infra merah dengan konsumsi daya sangat kecil. Jika diberi
prasikap maju, LED infra merah yang terdapat pada optocoupler akan mengeluarkan panjang
gelombang sekitar 0,9 mikrometer.
Proses terjadinya pancaran cahaya pada LED infra merah dalam optocoupler adalah
sebagai berikut. Saat dioda menghantarkan arus, elektron lepas dari ikatannya karena memerlukan
tenaga dari catu daya listrik. Setelah elektron lepas, banyak elektron yang bergabung dengan
lubang yang ada di sekitarnya (memasuki lubang lain yang kosong). Pada saat masuk lubang yang
lain, elektron melepaskan tenaga yang akan diradiasikan dalam bentuk cahaya, sehingga dioda
akan menyala atau memancarkan cahaya pada saat dilewati arus. Cahaya infra merah yang terdapat

Universitas Sumatera Utara

31

pada optocoupler tidak perlu lensa untuk memfokuskan cahaya karena dalam satu chip mempunyai
jarak yang dekat dengan penerimanya. Pada optocoupler yang bertugas sebagai penerima cahaya
infra merah adalah fototransistor. Fototransistor merupakan komponen elektronika yang berfungsi
sebagai detektor cahaya infra merah. Detektor cahaya ini mengubah efek cahaya menjadi sinyal
listrik, oleh sebab itu fototransistor termasuk dalam golongan detektor optik.
Fototransistor memiliki sambungan kolektor–basis yang besar dengan cahaya infra merah,
karena cahaya ini dapat membangkitkan pasangan lubang elektron. Dengan diberi prasikap maju,
cahaya yang masuk akan menimbulkan arus pada kolektor. Fototransistor memiliki bahan utama
yaitu germanium atau silikon yang sama dengan bahan pembuat transistor. Tipe fototransistor juga
sama dengan transistor pada umumnya yaitu PNP dan NPN. Perbedaan transistor dengan
fototransistor hanya terletak pada rumahnya yang memungkinkan cahaya infra merah
mengaktifkan daerah basis, sedangkan transistor biasa ditempatkan pada rumah logam yang
tertutup. Simbol optocoupler seperti terlihat pada Gambar 2.9

Gambar 2.9 Simbol Optocoupler
Kerugian atau keburukan dari optocoupler adalah pada kecepatan switchingnya. Hal ini
disebabkan karena efek dari area yang sensistif terhadap cahaya dan timbulnya efek kapasitansi
pada ‘junction’-nya. Jika diperlukan kecepatan switching yang cukup tinggi maka optoisolator
harus dikonfigurasikan sehingga yang digunakan adalah sebagai photodiodenya.

Universitas Sumatera Utara

32

2.4.2

Prinsip Kerja dari Rangkaian Optocoupler

Prinsip kerja dari rangkaian Optocoupler adalah sebagai berikut :
1. Jika antara phototransistor dan LED terhalang maka phototransistor tersebut akan off
sehingga output dari kolektor akan berlogika high.
2. Sebaliknya jika antara phototransistor dan LED tidak terhalang maka phototransistor
tersebut akan on sehingga output-nya akan berlogika low.

2.5 LCD (Liquid Crystal Display)

LCD berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks, atau menampilkan menu
pada aplikasi mikrokontroler. LCD yang digunakan adalah jenis LCD M1632. LCDM1632 merupakan
modul LCD dengan tampilan 16 x 2 baris dengan konsumsi daya rendah. M1632 adalah merupakan modul
LCD dengan tampilan 16 x 2 baris dengan konsumsi daya yang rendah.

Modul ini dilengkapi dengan mikrokontroler yang didisain khusus untuk mengendalikan LCD.
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 mikrokontroler. Pada bab ini akan dibahas antarmuka LCD dengan mikrokontroler
ATMega8535. Contoh LCD pada gambar 2.10 dibawah ini

Gambar 2.10 LCD (Liquid Crystal Display)

Universitas Sumatera Utara

33

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. Dibawah ini
table fungsi pin – pin LCD (Liquid Crystal Display) :

Tabel 2.3 Fungsi pin-pin pada Liquid Crystal Display

Sebagaimana terlihat pada kolom deskripsi (symbol and functions), interface LCD merupakan
sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan
data dari atau ke 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 sepenuhnya
8 bit (pertama dikirim 4 bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Berikut adalah
contoh LCD (2×16) yang umum digunakan :

Gambar 2.11 LCD M1632

Universitas Sumatera Utara

34

Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller 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). Aplikasi dengan LCD dapat dibuat dengan mudah dan waktu yang
singkat, mengingat koneksi parallel yang cukup mudah antara kontroller dan LCD.

2.6 Transistor

Didalam pemakaiannya, transistor dipakai sebagai komponen saklar (switching) dengan
memanfaatkan daerah penjenuhan (saturasi) dan daerah penyumbatan (cut off) yang ada pada karakteristik
transistor.
Pada daerah penjenuhan nilai resistansi persambungan kolektor emitter secara ideal sama dengan
nol atau kolektor dan emiter terhubung langsung (short). Keadaan ini menyebabkan tegangan kolektor
emiter (VCE) = 0 Volt pada keadaan ideal, tetapi pada kenyataannya VCE bernilai 0 sampai 0.3 Volt. Dengan
menganalogikakan transistor sebagai saklar, transistor tersebut dalam keadaan ON seperti pada gambar
2.12

Universitas Sumatera Utara

35

R
R
RB

VCE
VBE

Saklar On

Gambar 2.12 Transistor Sebagai Saklar ON
Saturasi pada transistor terjadi apabila arus pada kolektor menjadi maksimum dan untuk mencari
besar arus basis agar transistor saturasi adalah :
Imax =

Vcc
Rc

Hfe.IB =

IB =

Vcc
Rc

Vcc
hfe.Rc

……………………………………………………………………..(2.3)

Hubungan antara tegangan basis (VB) dan arus basis (IB) adalah :

IB =

VB  VBE
RB

VB = IB + RB + VBE

VB =

VCC .RB
 VBE
hfe.RC

……………………………………………………………..(2.4)

Jika tegangan VB tekah mencapai VB =

VCC .RB
 VBE , maka transistor akan saturasi dengan IC mencapai
hfe.RC

maksimum.
Gambar 2.13 menunjukkan apa yang dimaksud dengan VCE (sat) adalah harga VCE pada beberapa
titik dibawah knee dengan posisi tepatnya ditentukan pada lembar

Universitas Sumatera Utara

36

data. Biasanya VCE (sat) hanya beberapa perpuluhan Volt, maupun pada arus kolektor sangat besar bisa
melebihi 1 Ampere. Bagian dibawah knee (Saturation) pada Gambar 2.13 dikenal sebagai daerah saturasi.

IC

Penjenuhan (Saturation)
IB > IB (sat)

Vcc
Rcc

IB = I B (sat)

IB
Titik Sumbat (Cut Off)

IB = 0
VCE

Gambar 2.13 Karakteristik Daerah Saturasi Pada Transistor
Pada daerah penyumbatan, nilai resistansi persambungan kolektor emiter secara ideal sama dengan
tidak terhitung atau terminal kolektor dan emiter terbuka (open). Keadaan ini menyebabkan tegangan (VCB)
sama dengan tegangan sumber (Vcc). Tetapi pada kenyataannya Vcc pada saat ini kurang dari Vcc karena
terdapat arus bocor dari kolektor ke emiiter. Dengan menganalogikakan transistor sebagai saklar, transistor
tersebut dalam keadaan cut off seperti Gambar 2.14.

Vcc
R

IC

Vcc
R

RB
VB

IB

VCE

Saklar Off

VBE

Gambar 2.14 Transistor Sebagai Saklar Off

Keadaan penyumbatan terjadi apabila besar tegangan habis (VB) sama dengan tegangan kerja
transistor (VBE) sehingga arus basis (IB) = 0 maka :

Universitas Sumatera Utara

37

IB =

IC
hfe

IC = IB . hfe
IC = 0 . hfe
IC = 0
Hal ini menyebabkan VCE sama dengan Vcc dapat dibuktikan dengan rumus :
VCC = VC + VCE
VCE = Vcc – (Ic . Rc)
VCE = VCC

2.7 Perangkat Lunak

2.7.1 Pemrograman Bahasa C

Pada perancangan program pada alat, program yang digunakan adalah pemrograman bahasa C. Berikut
penjelasan dasar-dasar pemrograman bahasa C :
1. Tipe Data
Berikut ini adalah tipe-tipe data yang ada dalam bahasa C dan yang dikenali oleh CodeVisionAVR
:

Universitas Sumatera Utara

38

Tabel 2.4 Tipe Data
Tipe Data

Ukuran

Jangkauan Nilai

Bit

1 bit

0 atau 1

Char

1 byte

-128 s/d 225

Unsigned Char

1 byte

0 s/d 225

Signed Char

1 byte

-128 s/d 127

Int

2 byte

-32.768 s/d 32.767

Short Int

2 byte

-32.768 s/d 32.767

Unsigned Int

2 byte

0 s/d 65.535

Signed Int

2 byte

-32.768 s/d 32.767

Long Int

4 byte

-2.147.483.648 s/d 2.147.483.647

Unsigned Long Int

4 byte

0 s/d 4.294.967.295

Signed Long Int

4 byte

-2.147.483.648 s/d 2.147.483.647

Float

4 byte

1.2*10-38 s/d 3.4*10+38

Double

4 byte

1.2*10-38 s/d 3.4*10+38

2. Konstanta dan Variabel
Konstanta dan variabel merupakan sebuah tempat untuk menyimpan data yang berada di dalam
memori. Konstanta berisi data yang nilainya tetap dan tidak dapat diubah selama program
dijalankan, sedangkan variabel berisi data yang bisa berubah nilainya saat program dijalankan.
Untuk membuat sebuah konstanta atau variabel maka kita harus mendeklarasikannya lebih dahulu,
yaitu dengan sintaks berikut :

Universitas Sumatera Utara

39

Deklarasi konstanta :
Const [tipe_data][nama_konstanta]=[nilai]

Contoh :
Const char konstantaku=0x10;

Deklarasi variabel :
[tipe_data][nama_variabel]=[nilai_awal]

Contoh :
Char variabelku;
Char variabelku=0x20;
Bit variabel_bit;
Bit variabel_bit=1;

Pada deklarasi variabel, [nilai_awal] bersifat operasional sehingga boleh diisi dan boleh tidak diisi.
Nilai_awal merupakan nilai default variabel tersebut dan jika tidak diisi maka nilai defaultnya
adalah 0 (nol). Beberapa variabel dengan tipe yang sama dapat dideklarasikan dalam satu baris
seperti contoh berikut :
Char data_a, data_b, data_c;

3. Komentar
Komentar adalah tulisan yang tidak dianggap sebagau bagian dari tubuh program. Komentar
digunakan untuk memberikan penjelasan, informasi ataupun keterangan-keterangan yang dapat
membantu mempermudah dalam memahami kode program baik bagi si pembuat program maupun
bagi orang lain yang membacanya. Komentar yang hanya satu baris ditulis dengan diawali ’//’
sedangkan komentar yang lebih dari satu baris diawali dengan ’/*’ dan diakhiri dengan ’*/’.

Contoh :

Universitas Sumatera Utara

40
// Ini adalah komentar satu baris
/* Sedangkan yang ini adalah komentar
yang lebih dari satu baris*/

Selain dihunakan untuk memberikan keterangan program, komentar juga dapat digunakan untuk
membantu dalam pengujian program yaitu dengan menon-aktifkan dan mengaktifkan kembali
bagian program tertentu selama proses pengujian.
4. Pengarah Preprosessor
Pengarah preprosessor digunakan untuk mendefenisikan prosessor yang digunakan, dalam hal ini
adalah untuk mendefenisikan jenis mikrokontroller yang digunakan. Dengan pengarah preprosesor
ini maka pendeklarasian register-register dan penamaannya dilakukan pada file yang lain yang
disisipkan dalam program utama dengan sintaks sebagai berikut :
# include

Contoh :
# include

5. Pernyataan
Pernyataan adalah satu buah instruksi lengkap berdiri sendiri.
PORTC = 0x0F;

Pernyataan diatas merupakan sebuah instruksi untuk mengeluarkan data 0x0F ke Port C.
Contoh sebuah blok pernyataan :
{
PORTA=0x00; // pernyataan_1
PORTB=0x0F; // pernyataan_2
PORTC=0xFF; // pernyataan_3
}

6. Operator Aritmatika

Universitas Sumatera Utara

41

Operator aritmatika adalah beberapa operator yang digunakan untuk melakukan perhitungan
aritmatika. Berikut adalah tabel operator aritmatika :

Tabel 2.5 Operator Aritmatika
Operator

Keterangan

+

Operator untuk operasi penjumlahan

-

Operator untuk operasi pengurangan

*

Operator untuk operasi perkalian

/

Operator untuk operasi pembagian

%

Operator untuk operasi sisa pembagian

7. Operator Logika
Operator logika digunakan untuk membentuk suatu logika atas dua buah kondisi atau lebih.
Berikut ini adalah tabel operator logika :
Tabel 2.6 Operator Logika
Operator

Keterangan

&&

Operator untuk logika AND

ΙΙ

Operator untuk logika OR

!

Operator untuk logika NOT

Contoh :
if ( (a==b) && (c!=d) ) = 0xFF;

Universitas Sumatera Utara

42

Pernyataan diatas terdiri dari 2 buah kondisi yaitu a==b dan c!=d yang keduanya dihubungkan
dengan logika && (AND). Jika logika yang dihasilkan benar maka perintah PORTC = 0xFF akan
dikerjakan dan jika salah tidak akan dikerjakan.
8. Operator Penambahan dan Pengurangan
Operator penambahan dan pengurangan adalah operator yang digunakan untuk menaikkan atau
menurunkan nilai sebuah variabel dengan selisih 1. Berikut adalah tabel operator penambahan dan
pengurangan :
Tabel 2.7 Operator Penambahan dan Pengurangan
Operator

Keterangan
Operator untuk penambahan nilai

++

variabel dengan 1
Operator pengurangan nilai variabel

--

dengan 1

Contoh :
a = 1;
b = 5;
a++;
b--;

Maka operator a++ akan mengubah variable a dari 1 menjadi 2 dan operator b—akan mengubah
variable b dari 5 menjadi 4.
9. Pernyataan If
Pernyataan If digunakan untuk melakukan pengambilan keputusan terhadap dua buah
kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan If adalah :
if (kondisi)
{

Universitas Sumatera Utara

43
// blok pernyataan yang akan dikerjakan
// jika kondisi if terpenuhi
}

Contoh :
if (PINA>0x80)
{
Dataku=PINA;
PORTC=0xFF;
}

Pernyataan if diatas akan mengecek apakah data yang terbaca pada Port A (PINA) nilainya lebih
dari 0x80 atau tidak, jika ya maka variable dataku diisi dengan nilai PINA dan data 0xFF
dikeluarkan ke PORT C. Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka
tanda { dan } dapat dihilangkan seperti :
if (PINA>0x80) PORTC=0xFF;

2.7.2 CodeVisionAVR
CodeVisionAVR merupakan salah satu software compiler yang khusus digunakan untuk
mikrokontroller keluarga AVR. Meskipun CodeVisionAVR termasuk software komersial, namun kita tetap
dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis
walaupun dengan kemampuan yang dibatasi.
Dari bebarapa software kompiler C yang pernah digunakan, CodeVisionAVR merupakan yang
terbaik jika dibandingkan dengan kompiler-kompiler yang lain karena memiliki beberapa kelebihan yang
dimiliki oleh CodeVisionAVR antara lain :
1. Menggunakan IDE (Integrated Devvelopment Environment)

Universitas Sumatera Utara

44

2. Fasilitas yang disediakan lengkap (mengedit program, mengkompile program, mendownload
program) serta tampilannya terlihat menarik dan mudah dimengerti
3. Mampu membangkitkan kode program secara otomatis dengan menggunakan fasilitas
CodeWizardAVR
4. Memiliki fasilitas untuk mendownload program langsung dari CodeVisionAVR dengan
menggunakan

hardware khusus seperti Atmel STK500, Kanda System STK200+/300 dan

bebarapa hardware lain yang telah didefenisikan oleh CodeVisionaAVR
5.

Memiliki fasilitas debugger sehingga dapat menggunakan software compiler lain untuk mengecek
kode assemblernya, contoh AVRStudio

6. Memiliki terminal komunikasi serial yang terintegrasi dalam CodeVisionAVR sehingga dapat
digunakan untuk membantu pengecekan program yang telah dibuat khususnya yang menggunakan
fasilitas komunikasi serial USART. Berikut adalah tampilan codevisionAVR :

Gambar 2.15 Tampilan CodeVisionAVR

Universitas Sumatera Utara

45

Gambar 2.16 Rangkaian Alat Pengendalian Lampu Rumah dengan Jaringan GSM

Universitas Sumatera Utara