Perancangan Alat Pengendali Lampu dan Kipas Angin Dengan Jaringan Komunikasi Data Berbasis Mikrokontroler ATMega 32

5

BAB 2
TINJAUAN PUSTAKA

2.1 Mikrokontroler
Mikrokontroler adalah sebuah chip yang berfungsi sebagai pengontrol rangkaian
elektronik dan umumnya dapat menyimpan program didalamnya. Mikrokontroler
umumnya terdiri dari CPU (Central Unit Processing Unit), memori, I/O tertentu
dan unit pendukung seperti Analog-to-Digital Converter (ADC) yang sudah
terintegrasi di dalamnya.kelebihan utama dari mikrokontroler adalah tersedianya
RAM dan peralatan I/O pendukung sehingga ukuran board mikrokontroler
menjadi sangat ringkas. Mikrokontroler juga merupakan chip cerdas yang menjadi
tren dalam pengendalian dan otomatisas serta memiliki port sebagai input dan
output. Dengan banyak jenis keluarga,kapasitas memori, dan berbagai figure,
mikrokontroler menjadi pilihan dalam aplikasi prosesor mini untuk pengendalian
skala kecil. Setelah mengalami perkembangan, teknologi mikroprosesor dan
mikrokontroler mengalami peningkatan yang terjadi pada tahun 1996 s/d 1998.
ATMEL mengeluarkan teknologi mikrokontroler terbaru berjenis AVR
(Alf and Vegard’s Risc processor) yang menggunakan teknologi RISC (Reduce
Instruction Set Computer) dengan keunggulan lebih banyak yang dibandingkan

pendahulunya, yaitu mikrokontroler jenis MCS. Mikrokontroler jenis MCS
memiliki kecepatan kerja 1/12 kali frekuensi osilator yang digunakan sedangkan
pada kecepatan frekuensi kerja AVR sama dengan kecepatan frekuensi kerja
osilator yang digunakan. Jadi apabila menggunakan frekuensi osilator yang sama,
maka AVR mempunyai kecepatan kerja 12 kali lebih cepat dibanding dengan
MCS. Dalam perancangan alat ini mikrokontroler yang digunakan adalah
ATmega32 yang merupakan produksi ATMEL yang berjenis AVR.

2.2 Mikrokontroler ATMega 32
Mikrokontroler merupakan sebuah single chip yang didalamya telah dilengkapi
dengan CPU (Central Prosessing Unit); RAM ( RandomAcces Memory); ROM
( Read only Memory), Input, dan Output, Timer\ Counter, Serial com port secara

Universitas Sumatera Utara

6

spesifik digunakan untuk aplikasi –aplikasi control dan buka aplikasi serbaguna.
Mikrokontroler umumnya bekerja pada frekuensi 4MHZ-40MHZ. Perangkat ini
sering digunakan untuk kebutuhan kontrol tertentu seperti pada sebuah penggerak

motor. Read only Memory (ROM) yang isinya tidak berubah meskipun IC
kehilangan catu daya. Sesuai dengan keperluannya, sesuai dengan susunan MCS51. Memory penyimpanan program dinamakan sebagai memory program.
Random Acces Memory (RAM) isinya akan begitu sirna IC kehilangan catudaya
dipakai untuk menyimpan data pada saat program bekerja. RAM yang dipakai
untuk menyimpan data ini disebut sebagai memori data.
Mikrokontroler

biasanya

dilengkapi

dengan

UART

(Universal

Asychoronous Receiver Transmitter) yaitu port serial komunikasi serial asinkron,
USART (Universal Asychoronous\Asy choronous Receiver Transmitter) yaitu
port yang digunakan untuk komunikasi serial asinkron dan asinkron yang

kecepatannya 16 kali lebih cepat dari Uart, SPI ( Serial Port Interface), SCI (
Serial Communication Interface ), Bus RC ( Intergrated circuit Bus ) merupakan
2 jalur yang terdapat 8 bit, CAN ( Control Area Network ) merupakan standard
pengkabelan SAE (Society of Automatic Enggineers).
Pada system computer perbandingan RAM dan ROM-nya besar, artinya
program-program

pengguna

disimpan

dalam

ruang RAM

yang

relatif

besar,sedangkan rutin-rutin antar muka pernagkat keras disimpan dalm ruang

ROM yang kecil. Sedangkan pada mikrokontroler, perbandingan ROM dan RAMnya yang besar artinya program control disimpan dalam ROM yang ukurannya
relative lebih besar, sedangkan RAM digunakan sebagai tempat penyimpanan
sedrhana sementara, termasuk register-register yang digunakan pada Microctroller
yang bersangkutan.

2.2.1 Arsitektur ATMega 32
Fitur-fitur yang dimiliki ATmega32 sebagai berikut:
1. Frekuensi clock maksimum 16 MHz.
2. Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD.
3. Analog to Digital Converter 10 bit sebanyak 8 input, 4 chanel PWM.
4. Timer/Counter sebanyak 3 buah.

Universitas Sumatera Utara

7

5. CPU 8 bit yang terdiri dari 32 register.
6. Watchdog Timer dengan osilator internal.
7. SRAM sebesar 2K Byte.
8. Memori Flash sebesar 32K Byte dengan kemampuan read while write.

9. Interrupt internal maupun eksternal.
10. Port komunikasi SPI.
11. EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
12. Analog Comparator.
13. Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps

Gambar 2.1 Blok Diagram dan Arsitektur ATmega 32

Universitas Sumatera Utara

8

2.2.2

Konfigurasi ATMega 32

Mikrokontroler merupakan suatu device yang di dalamnya sudah terintegrasi
dengan I/O port,RAM,ROM,sehingga dapat digunakan untuk berbagai keperluan
kontroler .Mikrokontroler AVR ATmega32 merupakan low power CMOS
mikrokontroler 8 bit yang di kembangkan oleh atmel dengan arsitektur

RISC(Reduced Instruction SET Computer) sehingga dapat mencapai troughput
eksekusi instruksi 1 MIPS(Million Instruction Per Second).Mikrokontroler AVR
dapat dikelompokkan menjadi 4 kelas yaitu kelas ATtiny,kelas AT90xx,keluarga
ATmega,dan kelas AT86RFxx.pada dasarnya yang membedakan masing-masing
kelas adalah memori,peripheral,spedd.operasi tegangan dan fungsinya sedangkan
dari segi arsitektur dan instruksi yang di gunakan bisa di katakan hampir sama.
Penjelasan konfigurasi pin pada mikrokontroler AVR ATmega32 secara umum:
a. Pin 1 sampai 8 (port B) merupakan port paralel 8 bit dua arah (bidirectional),
yang dapat di gunakan untuk general purpose dan special feature.
b. Pin 9 (riset) jika terdapat minimum pulse pada saat active low.
c. Pin 10 (VCC) di hubungkan ke Vcc (2,7-5,5 Volt).
d. Pin 11 dan 31 (GND di hubungkan ke Vssatau ground.
e. Pin 12 (XTAL 2) adalah pin masukan ke rangkaian osilator internal. Sebuah
osilator kristal atau sumber osilator luar dapat di gunakan.
f. Pin 13 (XTAL 1) adalah pin keluaran ke rangkaian osilator internal.pin ini di
pakai bila menggunakan osilator kristal.
g. Pin 14 sampai 21 (port D) adalah 8 bit dua arah (bi-directional I/O) port
dengan internal pull-up resistors di gunaka untuk general purpose dan special
feature.
h. Pin 22 sampai 29 (port C) adalah 8 bit dua arah (bi-directional I/O) port

dengan internal pull-up resistors di gunaka untuk general purpose dan special
feature.
i. Pin 30 adalah Avcc pin penyuplai daya untuk port A dan A/D converter dan di
hubungkan ke Vcc.jika ADC di gunakan maka pin ini di hubungkan ke Vcc.
j. Pin 32 adalah A REF pin yang berfungsi sebagai referensi untuk pin analog
jika A/D converter di gunakan.
k. Pin 33 sampai 40 (port A) adalah 8 bit dua arah arah (bi-directional I/O) port

Universitas Sumatera Utara

9

dengan internal pull-up resistors di gunaka untuk general purpose.

Gambar 2.2 Pin-pin ATMega32
Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:
1.

VCC
Sumber Tegngan


2.

GND
(Ground)
Ground

3.

Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
memilki internal pull-up resistor. Output buffer port A dapat mengalirkan
arus sebesar 20 mA. Ketika port A digunakan sebagai input dan di pull-up
secara langsung, maka port A akan mengeluarkan arus jika internal pull-up
resistor diaktifkan. Pin-pin dari port A memiliki fungsi khusus yaitu dapat
berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10
bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang
tertera pada table.
Tabel 2.1 Fungsi khusus port A
Port


Alternate Function

PA7

ADC7 (ADC input channel 7)

Universitas Sumatera Utara

10

4.

PA6

ADC6 (ADC input channel 6)

PA5

ADC5 (ADC input channel 5)


PA4

ADC4 (ADC input channel 4)

PA3

ADC3 (ADC input channel 3)

PA2

ADC2 (ADC input channel 2)

PA1

ADC1 (ADC input channel 1)

PA0

ADC0 (ADC input channel 0)


Port B (PB7 – PB0)
Port B adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin
mengandung internal pull-up resistor. Output buffer port B dapat
mengalirkan arus sebesar 20 mA. Ketika port B digunakan sebagai input
dan di pull-down secara external, port B akan mengalirkan arus jika
internal pull-up resistor diaktifkan.
Pin-pin port B memiliki fungsi-fungsi khusus, diantaranya :
a. SCK port B, bit 7
Input pin clock untuk up/downloading memory.
b. MISO port B, bit 6
Pin output data untuk uploading memory.
c. MOSI port B, bit 5
Pin input data untuk downloading memory.

Fungsi-fungsi khusus pin-pin port B dapat ditabelkan seperti pada tabel

Universitas Sumatera Utara

11

Tabel 2.2 Fungsi khusus port B
Port

Alternate Function

PB7

SCK (SPI Bus Serial Clock)

PB6

MISO (SPI Bus Master Input/Slave Output)

PB6

MOSI (SPI Bus Master Output/Slave Input)

PB5

SS (SPI Slave Select Input)

AIN1 (Analog Comparator Negative Input)
PB3
OCO (Timer/Counter0 Output Compare Match Output)

AIN0 (Analog Comparator Positive Input)
PB2
INT2 (External Interrupt 2 Input)

PB1

T1 (Timer/Counter1 External Counter Input)

T0 (Timer/Counter External Counter Input) XCK
PB0
(USART External Clock Input/Output)

5.

Port C (PC7 – PC0)
Port C adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor. Output buffer port C dapat mengalirkan
arus sebesar 20 mA. Ketika port C digunakan sebagai input dan di pull-down
secara langsung, maka port C akan mengeluarkan arus. Fungsi-fungsi khusus
pin-pin port C dapat ditabelkan seperti yang tertera pada tabel dibawah ini.

Universitas Sumatera Utara

12

Tabel 2.3 Fungsi khusus port C

6.

Port

Alternate Function

PC7

TOSC2 (Timer Oscillator Pin 2)

PC6

TOSC1 (Timer Oscillator Pin 1)

PC6

TD1 (JTAG Test Data In)

PC5

TD0 (JTAG Test Data Out)

PC3

TMS (JTAG Test Mode Select)

PC2

TCK (JTAG Test Clock)

PC1

SDA (Two-wire Serial Bus Data Input/Output Line)

PC0

SCL (Two-wire Serial Bus Clock Line)

Port D (PD7 – PD0)
Port D adalah 8-bit port I/O yang berfungsi bi-directional dan setiap pin
memiliki internal pull-up resistor. Output buffer port D dapat mengalirkan
arus sebesar 20 mA. Ketika port D digunakan sebagai input dan di pull-down
secara langsung, maka port D akan mengeluarkan arus jika internal pull-up
resistor diaktifkan. Fungsi-fungsi khusus pin-pin port D dapat ditabelkan
seperti yang tertera pada tabel dibawah ini.
Tabel 2.4 Fungsi khusus port D
Port

Alternate Function

PD5

OC2 (Timer / Counter2 Output Compare Match Output)

Universitas Sumatera Utara

13

PD7

ICP1 (Timer/Counter1 Input Capture Pin)

PD4

OCIB (Timer/Counter1 Output Compare B Match Output)

PD6

TD0 (JTAG Test Data Out)

PD3

INT1 (External Interrupt 1 Input)

PD2

INT0 (External Interrupt 0 Input)

PD1

TXD (USART Output Pin)

PD0

RXD (USART Input Pin)

2.2.3 Arsitektur CPU ATMega32
Fungsi utama CPU adalah memastikan pengeksekusian instruksi dilakukan
dengan benar. Oleh karena itu CPU harus dapat mengakses memori, melakukan
kalkulasi, mengontrol peripheral, dan menangani interupsi. Ada 32 buah General
Purpose Register yang membantu ALU bekerja. Untuk operasi aritmatika dan
logika, operand berasal dari dua buah general register dan hasil operasi ditulis
kembali ke register. Status and Control berfungsi untuk menyimpan instruksi
aritmatika yang baru saja dieksekusi. Informasi ini
berguna untuk mengubah alur program saat mengeksekusi operasi kondisional.
Instruksi di jemput dari flash memory. Setiap byte flash memory memiliki alamat
masing-masing. Alamat instruksi yang akan dieksekusi senantiasa disimpan
Program Counter. Ketika terjadi interupsi atau pemanggilan rutin biasa, alamat di
Program Counter disimpan terlebih dahulu di stack. Alamat interupsi atau rutin
kemudian ditulis ke Program Counter, instruksi kemudian dijemput dan
dieksekusi. Ketika CPU telah selesai mengeksekusi rutin interupsi atau rutin
biasa, alamat yang ada di stack dibaca dan ditulis kembali ke Program Counter.

Universitas Sumatera Utara

14

2.2.4 Program Memori
ATMega

32

memiliki

32

KiloByte

flash

memori

untuk

menyimpan

program.Karena lebar intruksi 16 bit atau 32 bit maka flash memori dibuat
berukuran 16K x 16. Artinya ada 16K alamat di flash memori yang bisa dipakai
dimulai dari alamat 0 heksa sampai alamat 3FFF heksa dan setiap alamatnya
menyimpan 16 bit instruksi.

2.2.5

SRAM Data Memori

ATMega 32 memiliki 2 KiloByte SRAM. Memori ini dipakai untuk menyimpan
variabel. Tempat khusus di SRAM yang senantiasa ditunjuk register SP disebut
stack. Stack berfungsi untuk menyimpan nilai yang dipush.

2.2.6

EEPROM Data Memori

ATMega 32 memiliki 1024 byte data EEPROM. Data di EEPROM tidak akan
hilang walaupun catuan daya ke sistem mati. Parameter sistem yang penting
disimpan di EEPROM. Saat sistem pertama kali menyala paramater tersebut
dibaca dan system diinisialisasi sesuai dengan nilai parameter tersebut.

2.2.7

Interupsi

Sumber interupsi ATMega 32 ada 21 buah. Tabel 2 hanya menunjukkan 10 buah
interupsi pertama. Saat interupsi diaktifkan dan interupsi terjadi maka CPU
menunda instruksi sekarang dan melompat ke alamat rutin interupsi yang terjadi.
Setelah selesai mengeksekusi intruksi-instruksi yang ada di alamat rutin interupsi
CPU kembali melanjutkan instruksi yang sempat tertunda.

2.2.8

Status register (SREG)

Status register adalah Status Register berisi informasi tentang hasil yang paling
baru-baru ini dieksekusi aritmatika instruksi. Informasi ini dapat digunakan untuk
mengubah aliran program untuk melakukan operasi bersyarat. Perhatikan bahwa
Register Status diperbarui setelah semua operasi ALU, sebagai ditentukan dalam
Instruction Set Reference. Ini akan dalam banyak kasus menghilangkan kebutuhan

Universitas Sumatera Utara

15

untuk menggunakan didedikasikan membandingkan instruksi, sehingga lebih
cepat dan lebih kompak kode. Status Register tidak secara otomatis disimpan
ketika memasuki rutin interupsi dan dipulihkan ketika kembali dari interupsi. Ini
harus ditangani oleh perangkat lunak.

Gambar 2.3 Status Register ATMega 32
• Bit 7 - I: Dunia Interrupt Enable
Global Interrupt Enable bit harus ditetapkan untuk menyela harus diaktifkan .
Individu interrupt memungkinkan kontrol selanjutnya dilakukan dalam register
kontrol terpisah . Jika Global Interrupt Enable Daftar dibersihkan , tidak ada
interupsi diaktifkan independen dari interrupt individu mengaktifkan
pengaturan . The I- bit dihapus oleh hardware setelah interupsi telah terjadi ,
dan diatur oleh instruksi RETI untuk mengaktifkan interupsi berikutnya . The
I- bit juga dapat diatur dan dibersihkan oleh aplikasi dengan SEI dan CLI
instruksi, seperti yang dijelaskan dalam referensi set instruksi .
• Bit 6 - T : Bit Copy Storage
The Bit Copy instruksi BLD ( Bit Load) dan BST ( Bit Store) menggunakan T
- bit sebagai sumber atau tujuan untuk bit yang dioperasikan . Sedikit dari
register dalam Daftar file dapat disalin ke T oleh Instruksi BST , dan sedikit di
T dapat disalin ke dalam sedikit dalam register dalam Daftar file oleh Instruksi
BLD .
• Bit 5 - H : Half Carry Flag
The Half Carry Flag H menunjukkan setengah carry dalam beberapa operasi
aritmatika . Half Carry berguna dalam BCD aritmatika.
• Bit 4 - S : Sign Bit , S = N ⊕ V

The S - bit selalu eksklusif atau antara Negatif Flag N dan Komplemen Dua

Universitas Sumatera Utara

16

Overflow Flag V.
• Bit 3 - V : Two Complement Overflow Flag
The Two Complement Overflow Flag V mendukung dua itu aritmatika
komplemen.
• Bit 2 - N : Negative Flag
Negatif Flag N menunjukkan hasil negatif dalam aritmatika atau operasi logika
• Bit 1 - Z : Nol Flag Zero Flag Z
mengindikasikan hasil nol dalam aritmatika atau operasi logika .
• Bit 0 - C : Carry Flag The Carry Flag C
mengindikasikan carry dalam aritmatika atau operasi logika.

2.3 Frekuensi Radio
Frekuensi Radio adalah sinyal arus berfrekuensi tinggi yang berubah-ubah yang
melewati konduktor tembaga yang panjang dan kemudian diradiasikan ke udara
melalui sebuah antenna. Sebuah antenna mentranformasikan sinyal kabel ke
sinyal wireless dan sebaliknya. Ketika sinyal AC berfrekuensi tinggi diradiasikan
ke udara,akan membentuk gelombang radio. Gelombang radio tersebut berpindah
dari sumber (antenna) pada sebuah garis lurus semuanya bersamaan. Mengerti
tingkah laku dari panyebaran gelombang RF adalah bagian penting untuk
mengerti mengapa dan bagaimana wireless LAN berfungsi.
Tanpa dasar pengetahuan tersebut,seorang administrator tidak mampu
menentukan lokasi instalasi dari perlengkapan dan tidak akan mengerti
bagaimana memecahkanmasalah wireless LAN.Penyerapan terjadi ketika sinyal
RF merambat objek dan terserap dalam material objek dengan cara tidak
menembusnya, memantul, atau mengitari objek. Frekuensi Radio merupakan
suatu

gelombang

elektromagnetik

yang

memiliki

spektrum

radiasi

elektromagnetik pada rangefrekuensi antara 9 kHz-300 GHz. Gelombang
elektromagnetik dihasilkan dari arus AC yang diberikan pada suatu konduktor
atau antena. Antena tersebut akan meradiasikan suatu medan elektromagnetik
melalui udara.

Panjang gelombang dari frekuensi radio berbanding terbalik

dengan frekuensinya berdasarkan rumus berikut :

Universitas Sumatera Utara

17

dengan

λ

= panjang gelombang (m)

c

= kecepatan cahaya (3x108 m/s)

f

= frekuensi (Hz)

Frekuensi Radio ini digunakan sebagai media pengiriman data dari transmitter ke
receiver.

2.3.1 Transmitter
Transmitter adalah rangkaian pengirim data yang mengirimkan data ke receiver
Transmitter ini terdiri dari modul RF transmitter dan Antena.
Antena

INPUT

RF Transmiter

Gambar 2.4 Diagram Blok RangkaianTransmitter
Transmitter ini digunakan sebagai pengirim data antar device . Pada proyek akhir
ini modul RF transmitter yang digunakan yaitu tipe TLP 315 sudah tersedia dan
dapat dibeli dengan mudah dipasaran. Modul RF transmitter.
Modul RF Transmitter TLP 315 adalah modul pengirim data dengan media
pengiriman data melalui gelombang radio yang frekuensi kerjanya telah
ditetapkan yaitu 315 MHz.

Universitas Sumatera Utara

18

Gambar 2.5 Bentuk Fisik dan Konfigurasi Kaki Transmitter
Keterangan : 1. GND
2. Data Out
3. VCC
4. Antena
2.3.2 Receiver
Receiver adalah rangkaian penerima data yang menerima data dari Transmitter.
Receiverini terdiri dari modul RF receiver, decoder, dan Antena.
Berikut ini adalah Diagram Blok dari receiver.

Antena

RF
Receiver

OUTPUT

Gambar 2.6 Diagram Blok Rangkaian Receiver

Receiver ini digunakan sebagai penerima data yang dikirim dari transmitter
sebagai sebuah input bagi mikrokontroler Atmega 32.

Modul RF Receiver
Pada proyek Akhir ini modul RF receiver yang digunakan yaitu tipe RLP 315
sudah tersedia dan dapat dibeli dengan mudah dipasaran. Modul RF receiver RLP

Universitas Sumatera Utara

19

315 adalah modul penerima data yang menerima data dari modul RF transmitter
TLP 315 dengan frekuensi 315 MHz. Data yang diterima adalah data serial,
kemudian data ini diubah oleh decoder.

Gambar 2.7 Bentuk Fisik dan Konfigurasi Kaki Receiver
Keterangan :
1. GND
2. Data Out Digital
3. Linear Output
4. VCC
5. VCC
6. GND
7. GND
8. Antena

2.4 Liquid Crystal Display (LCD)
Fungsi display dalam suatu aplikasi mikrokontroler sangat penting sekali
diantaranya yaitu :


Mematikan data yang kita input valid



Mengetahui hasil suatu proses



Memonitoring suatu proses



Mendebug program



Menampilkan pesan
LCD berfungsi menampilkan suatu nilai hasil sensor, menampilkan teks,

atau menampilkan menu pada aplikasi mikrokontroler. LCD yang digunakan

Universitas Sumatera Utara

20

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. 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.
Gambar 2.12 berikut ini adalah Pin LCD M1632:
Tabel 2.5 Fungsi 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

Universitas Sumatera Utara

21

EN setiap nibblenya). Gambar 2.12 berikut adalah contoh LCD (2×16) yang
umum digunakan :

Gambar 2.8 LCD M1632

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

Universitas Sumatera Utara

22

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.5 Keypad Matriks
Keypad matrix 4x4 adalah keypad yang digunakan penulis pada alat ini yang
berfungsi sebagai interface antara perangkat (mesin) elektronik dengan manusia
atau dikenal dengan istilah HMI (Human Machine Interface). Matrix keypad 4×4
memiliki konstruksi atau susunan yang simple dan hemat dalam penggunaan port
mikrokontroler. Konfigurasi keypad dengan susunan bentuk matrix ini bertujuan
untuk penghematan port mikrokontroler karena jumlah key (tombol) yang
dibutuhkan banyak pada suatu sistem dengan mikrokontroler. Konstruksi matrix
keypad 4×4 untuk mikrokontroler dapat dibuat seperti pada gambar berikut:

Gambar 2.9 Konstruksi Matrix Keypad 4×4
Konstruksi matrix keypad 4×4 diatas cukup sederhana, yaitu terdiri dari 4 baris
dan 4 kolom dengan keypad berupas saklar push buton yang diletakan disetiap
persilangan kolom dan barisnya. Rangkaian matrix keypad diatas terdiri dari 16
saklar push buton dengan konfigurasi 4 baris dan 4 kolom. 8 line yang terdiri dari
4 baris dan 4 kolom tersebut dihubungkan dengan port mikrokontroler 8 bit. Sisi
baris dari matrix keypad ditandai dengan nama Row1, Row2, Row3 dan Row4
kemudian sisi kolom ditandai dengan nama Col1, Col2, Col3 dan Col4.
Sisi input atau output dari matrix keypad 4×4 ini tidak mengikat, dapat
dikonfigurasikan kolom sebagi input dan baris sebagai output atau sebaliknya
tergantung programernya. Keypad Matriks 4×4 cukup menggunakan 8 pin untuk
16 tombol. Proses pengecekkan dari tombol yang dirangkai secara maktriks

Universitas Sumatera Utara

23

adalah dengan teknik scanning, yaitu proses pengecekkan yang dilakukan dengan
cara memberikan umpan-data pada satu bagian dan mengecek feedback (umpanbaliknya) pada bagian yang lain. Dalam hal ini, pemberian umpan-data dilakukan
pada bagian baris dan pengecekkan umpan-balik pada bagian kolom. Pada saat
pemberian umpan-data pada satu baris, maka baris yang lain harus dalam kondisi
inversi-nya.

2.5.1 Proses Scanning Matrix 4×4 Untuk Mikrokontroler
Proses scaning untuk membaca penekanan tombol pada matrix keypad 4×4 untuk
mikrokontroler diatas dilakukan secara bertahap kolom demi kolom dari kolom
pertama sampai kolom ke 4 dan baris pertama hingga baris ke 4. Program untuk
scaning matrix keypad 4×4 dapat bermacam-macam, tapi pada intinya sama.
Misal kita asumsikan keyapad aktif LOW (semua line kolom dan baris dipasang
resistor pull-up) dan dihubungkan ke port mikrokontrolr dengan jalur kolom
adalah jalur input dan jalur baris adalah jalur output maka proses scaning matrix
keypad 4×4 diatas dapat dituliskan sebagai berikut:


Mengirimkan logika Low untuk kolom 1 (Col1) dan logika HIGH untuk
kolom yang lain kemudian membaca data baris, misal tombol SW1
ditekan maka data baris pertama (Row1) akan LOW sehingga data baris
yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau
tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111.



Mengirimkan logika Low untuk kolom 2 (Col2) dan logika HIGH untuk
kolom yang lain kemudian membaca data baris, misal tombol SW1
ditekan maka data baris pertama (Row1) akan LOW sehingga data baris
yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau
tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada

Universitas Sumatera Utara

24

tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111.


Mengirimkan logika Low untuk kolom 3 (Col3) dan logika HIGH untuk
kolom yang lain kemudian membaca data baris, misal tombol SW1
ditekan maka data baris pertama (Row1) akan LOW sehingga data baris
yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau
tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111.



Mengirimkan logika Low untuk kolom 4 (Col4) dan logika HIGH untuk
kolom yang lain kemudian membaca data baris, misal tombol SW1
ditekan maka data baris pertama (Row1) akan LOW sehingga data baris
yang dibaca adalah 0111, atau tombol yang ditekan tombol SW5 maka
data pada baris ke 2 akan LOW sehingga data yang terbaca 1011, atau
tombol SW9 yang ditekan sehingga data yang terbaca 1101, atau tombol
SW13 yang ditekan maka data yang dibaca adalah 1110 dan atau tidak ada
tombol pada kolom pertama yang di tekan maka data pembacaan baris
akan 1111.

2.6 PWM (Pulse Width Modulation)
Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi
lebar sinyal yang dinyatakan dengan pulsa dalam satu periode, untuk
mendapatkan tegangan rata-rata yang berbeda. Aplikasi PWM berbasis
mikrokontroller biasanya berupa pengendalian kecepatan motor DC, pengendalian
motor servo, dan pengaturan nyala terang LED. Oleh karena itu diperlukan
pemahaman terhadap konsep PWM itu sendiri. Cara pengaturan kecepatan yang
digunakan adalah dengan

menggunakan teknik PWM

(

Pulse

Width

Modulation), salah satu teknik untuk mengatur kecepatan motor DC yang umum
digunakan.

Universitas Sumatera Utara

25

Dengan menggunakan PWM kita dapat mengatur kecepatan yang diinginkan
dengan mudah. Teknik PWM untuk pengaturan kecepatan motor adalah,
pengaturan

kecepatan

motor

dengan

cara

merubah-rubah

besarnya duty

cycle pulsa. Pulsa yang yang berubah ubah duty cycle-nya inilah yang menentukan
kecepatan motor. Besarnya amplitudo dan frekuensi pulsa adalah tetap, sedangkan
besarnya duty cycle berubah-ubah sesuai dengan kecepatan yang diinginkan,
semakin besar duty cylce maka semakin cepat pula kecepatan motor, dan
sebaliknya semakin kecil duty cycle maka semakin pelan pula kecepatan motor.
Sebagai contoh: Bentuk pulsa yang dikirimkan adalah seperti pada gambar 2.10,
pulsa kotak dengan duty cycle pulsa 50%. Sedangkan sebagai contoh bentuk pulsa
PWM adalah seperti pada gambar 2.11.

Gambar 2.10 Pulsa dengan Duty Cycle 50%

Dengan mengatur besarnya duty cycle pulsa kotak yang dikirimkan, kita dapat
mengatur banyaknya logika high yang diberikan pada motor, dengan kata lain
mengatur lamanya waktu motor untuk berputar dalam satu periode pulsa. Jika
lamanya waktu motor untuk berputar dalam satu periode pulsa ini berubah maka
kecepatan purtaran motor juga akan berubah, sesuai dengan duty cycle atau waktu
motor untuk berputar dalam satu periode pulsa.

2.6.1 Konsep Dasar PWM
Sinyal PWM pada umumnya memiliki amplitude dan frekuensi dasar yang tetap,
namun memiliki lebar pulsa yang bervariasi. Lebar pulsa PWM berbanding lurus
dengan amplitude sinyal asli yang belum termodulasi. Artinya, sinyal PWM
memiliki frekuensi gelombang yang tetap namun duty cycle bervariasi antara 0%

Universitas Sumatera Utara

26

hingga 100%. Secara analog setiap perubahan PWM-nya sangat halus, sedangkan
secara digital setiap perubahan PWM dipengaruhi oleh resolusi PWM itu sendiri.
Resolusi adalah jumlah variasi perubahan nilai dalam PWM tersebut. Misalkan
suatu PWM memiliki resolusi 8 bit, berarti PWM ini memiliki variasi perubahan
nilai sebanyak 256 variasi mulai dari 0 – 225 perubahan nilai yang mewakili duty
cycle 0% – 100% dari keluaran PWM tersebut. A pulse-width modulation sinyal
dimulai dengan tegangan yang naik dan turun berulang kali. Metode klasik
menciptakan osilasi adalah dengan sirkuit resistor-kapasitor (RC). Sirkuit ini
menggunakan RC waktu dengan twist dioda untuk mengubah rasio on-pulsa
waktu versus waktu off-pulsa (disebut "siklus").

Universitas Sumatera Utara