• Tidak ada hasil yang ditemukan

Moving Text Menggunakan Dot Matriks 8x8 Berbasis Mikrokontroler ATMEGA 32A

N/A
N/A
Protected

Academic year: 2016

Membagikan "Moving Text Menggunakan Dot Matriks 8x8 Berbasis Mikrokontroler ATMEGA 32A"

Copied!
133
0
0

Teks penuh

(1)

MOVING TEXT MENGGUNAKAN DOT MATRIKS 8x8

BERBASIS MIKROKONTROLER ATmega 32A

TUGAS AKHIR

PUTRI PUSPITA SARI 112408003

PROGRAM STUDI D-III FISIKA

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

(2)

MOVING TEXT MENGGUNAKAN METODE SCAN DENGAN

IC 74HC595 BERBASIS MIKROKONTROLER ATmega 32A

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh gelar Ahli Madya

PROGRAM STUDI D-III FISIKA

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN

ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

(3)

PERSETUJUAN

Judul : MOVING TEXT MENGGUNAKAN DOT

MATRIKS 8x8 BERBASIS MIKROKONTROLER ATEMEGA 32A

Kategori : TUGAS AKHIR

Nama : PUTRI PUSPITA SARI

No Induk Mahasiswa : 112408003

Program Studi : DIPLOMA III (D3) FISIKA

Departement : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

Diluluskan di

Medan, Juli 2014 Disetujui oleh :

Ketua Program Studi D-III Fisika Pembimbing

(4)

PERNYATAAN

MOVING TEXT MENGGUNAKAN DOT MATRIKS 8x8

BERBASIS MIKROKONTROLER ATEMEGA 32A

TUGAS AKHIR

Saya mengakui bahwa Laporan Tugas Akhir ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juli 2014

(5)

ABSTRAK

(6)

PENGHARGAAN

Puji dan Syukur penulis sampaikan kepada Allah Yang Maha Kuasa karena atas berkah kasih dan karunia-Nya, Sehingga penulis dapat menyelesaikan Laporan Tugas Proyek dalam waktu yang ditetapkan.

Ucapan terimakasih penulis sampaikan kepada Bapak Drs. Kurnia Brahmana, M.si selaku dosen pembimbing pada penyelesaian Laporan Tugas Proyek ini, yang telah memberikan panduan dan perhatian kepada penulis untuk menyempurnakan Laporan Tugas Proyek ini. Ucapan terimakasih juga ditujukan kepada Ketua dan Sekretaris Departemen. Dr. Susilawati, M.si sebagai Ketua Jurusan program Studi Fisika D-III dan Dr. Perdinan Sinuaji, M.si sebagai sekretaris program Studi Fisika D-III, Kepada Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua Dosen pada Departemen fisika FMIPA USU, dan Kepada Pegawai di FMIPA USU.

Akhirnya tidak terlupakan kepada Ibunda Hj. Manisen Br. Bangun dan Ayahnda tercinta H. Muhlis Manurung, SH atas doa dan kasih sayang serta bantuan yang berupa materi maupun nonmateri yang telah diberikan kepada penulis selama ini, serta Kakak Nisa, Abang Syamsir, Adik Atiqah dan imah, yang selama ini memberikan bantuan dan dorongan kepada penulis. Terkhusus buat Muhammad Abral yang telah memberikan dukungan dan memberikan semangat sebesar-besarnya buat penulis. Juga khususnya buat rekan-rekan seperjuangan yang telah diperjuangkan D3 Fisika Instrument stambuk 12 dan 13.

(7)

Penulis menyadari dalam tugas Proyek ini terdapat kekurangan secara materi maupun penyajiannya. Untuk itu penulis mengharapkan kritik dan saran yang bersifat membangun untuk kesempurnaan. Akhir kata penulis mengucapkan banyak terimakasih kepada pihak yang memberikan bantuan. Semoga bermanfaat bagi pembaca.

Medan, Juli 2014

(8)

DAFTAR ISI

1.5 Sistematika Penulisan 3

Bab 2 Landasan Teori

2.1 Dot Matriks atau Matriks LED 5

2.2 Moving Text dengan IC 74HC595 7

2.2.1 Program Menyalanya LED Pada Koordinat 10

2.3 Mikrokontroller ATMega 32A 11

2.4 Atmel AVR ATMega32 13

2.4.1 Fitur ATMega 32A 14

2.4.2 Konfigurasi ATMega 32A 15

2.4.3 Blok Diagram ATMega 32A 20

2.4.4 Peta Memory AVR ATMega 32A 21

2.5 General Purpose Register AVR 23

2.6 RISC (Reduce Instruction Set Computing) 23

2.6.1 Arsitektur Mikrokontroller AVR RISC 24

2.7 Variabel 25

2.8 CodeVision AVR 27

2.8.1 Program Code-Vision AVR 28

2.8.2 Cara Menjalankan Code-Vision AVR 29

2.9 Pemrograman RTC DS1307 dengan Codevision 30

2.9.1 Fitur-fitur DS1307 30

2.10 Pemrograman Bahasa C Standard (ANSI C) 31

Bab 3 Rancangan Sistem

3.1 Perancangan Sistem Rangkaian 34

3.2 Diagram Blok 37

3.3 Perancangan Power Supplay (PSA) 38

3.4 Relay 39

3.5 Perancangan rangkaian Real Time Clock (RTC) DS1307 41

3.6 Saklar 42

3.7 Flow Chart 43

Bab 4 Pengujian Rangkain

(9)

4.2 Pengujian Rangkaian Mikrokontroler ATMega32 44

4.3 Pengujian Rangkaian Relay 45

4.4 Analisa Bahasa Pemrograman 46

4.5 Pengujian Rangkaian dengan Menjalankan Program 48

4.6 Pengisian Text 53

4.7 Pengisian Demo 54

4.8 Penghapus Text 54

4.9 Menghapus Demo 55

4.10Font 55

Bab 5 Kesimpulan dan Saran

5.1 Kesimpulan 56

5.2 Saran-Saran 56

Daftar Pustaka 57

(10)

DAFTAR GAMBAR

Gambar 2.1 Dot Matriks 5

Gambar 2.2 Susunan Jalur-jalur Vertikal dan Horisontal 6

Gambar 2.3 Cara Pemasangan LED 6

Gambar 2.4 Rangkaian Moving Text Mode Scan dengan IC TTL 74HC595 7

Gambar 2.5 Rangkaian Belakang PCB 8

Gambar 2.6 Rangkaian Kabel yang dipasang KeDot Matriks 9

Gambar 2.7 Rangkaian Moving Text Menggunakan Dot Matriks 9

Gambar 2.8 Tampilan Program Baris dan Kolom 11

Gambar 2.9 Konfigurasi pin ATMega32 16

Gambar 2.10 Diagram Blok ATMega32 20

Gambar 2.11 Peta Memory Program AVR ATMega32 21

Gambar 2.12 Peta Memory Data AVR ATMega32 22

Gambar 2.13 General Register Purpose AVR 23

Gambar 2.14 Arisitektur Mikrokontroller AVR RISC 24

Gambar 2.15 Pengambilan Intruksi dan Pengeksekusian secara Paralel 25

Gambar 2.16 Form Pembuatan Micri chip (CodeVision AVR) 29

Gambar 2.17 Fitur-Fitur DS1307 30

Gambar 3.1 Perancangan Sistem Rangkaian 35

Gambar 3.2 Skema Rangkaian Untuk Menjalankan Program 36

Gambar 3.3 Gambar Blok Eeprom dari ATMega32 37

Gambar 3.4 Gambar Blok dengan DS1307 sebagai RTC External 38

Gambar 3.5 Rangkaian Power Supplay 39

Gambar 3.6 Simbol Relay 40

Gambar 3.7 Relay dengan Rangkaian Driver 40

(11)

DAFTAR TABEL

Table 2.1 Fungsi Khusus Port A 17

Table 2.2 Fungsi Khusus Port B 18

Table 2.3 Fungsi Khusus Port C 19

(12)

ABSTRAK

(13)

BAB 1

PENDAHULUAN

1.1 Latar belakang

Seiring dengan perkembangan teknologi yang sangat cepat, kebutuhan

manusia akan teknologi juga sangat dibutuhkan sehingga perlu dikembangkan

alat-alat baru yang bertujuan untuk memudahkan kegiatan manusia dalam

kehidupan sehari-hari.

Perkembangan teknologi mikrokontroler misalnya telah membawa era

baru dalam dunia elektonika. Salah satu bentuk penerapannya adalah running

text, dimana alat ini berfungsi untuk menampilkan informasi berupa tulisan

berjalan menggunakan lampu LED sebagai displaynya. Dalam perancangan

alat ini, menggunakan mikrokontroler ATmega32A sebagai pengolah data

sekaligus menyimpan data-data biner yang diperlukan untuk mengendalikan

matriks LED sebagai output data.

Penerapan moving text sudah banyak digunakan di tempat-tempat

tertentu, misalnya sistem informasi yang ada di lampu lalu lintas, sign yang

ada dikantor-kantor, universitas, dan lain sebagainya. Didalam Universitas,

penggunaan moving text dapat digunakan untuk pemberian informasi ruang

kelas dengan cara yang modern Penerapan moving text didalam rancangan

ini bermanfaat dalam dunia informasi karena dapat menampilkan tulisan

berupa huruf berjalan pada display yang terdiri dari susunan LED secara

(14)

1.2 Rumusan Masalah

Laporan proyek ini membahas tentang perangkat keras yang meliputi

perakitan moving text yang terdiri dari Mikrokontroler ATMega 32A

sebagai pusat kendalinya beserta software pemrogramannnya, Dot

Matriks sebagai tampilannya, IC 74HC595 Trafo, PSA dan Keyboard.

1.3 Tujuan Penulisan

Adapun tujuan penulisan laporan proyek ini adalah untuk:

1. Sebagai salah satu syarat untuk dapat menyelesaikan program Diploma

Tiga (D-III) Fisika Instrumentasi FMIPA Universitas Sumatera Utara.

2. Pengembangan kreatifitas mahasiswa dalam bidang ilmu instrumentasi

pengontrolan dan elektronika sebagai bidang diketahui.

3. Merancang suatu alat Moving Text dan Kemudian ditampilkan pada Dot

Matriks dengan menggunakan Mikrokontroler ATMega 32A.

4. Mengetahui cara kerja Moving Text menggunakan Dot Matriks berbasis

Mikrokontroler AtMega 32A.

5. Penulis ingin memberikan penjelasan tentang penggunaan dan cara kerja

dari Moving menggunakan Dot Matriks Berbasis Mikrokontroler ATMega

(15)

1.4 Batasan Masalah

Mengacu pada hal diatas Penulis Merancang Moving Text Berbasis

Mikrokontroler ATMega 32A, dengan batasan-batasan sebagai berikut :

1. Pembahasan mikrokontroler Atmega 32A.

2. Dot Matriks yang digunakan adalah LED Matriks sebagai tampilannya.

3. Pembahasan hanya meliputi rangkaian Mikrokontroler ATMega 32A,

Dot Matriks, beserta programnya.

4. Pembahasan hanya sebatas pemrograman mikrokontroler dan interfacing

untuk pemrograman dari komputer ke mikrokontroler tidak dibahas.

1.5 Sistematika Penulisan

BAB I : PENDAHULUAN

Dalam hal ini berisikan mengenai latar belakang, rumusan

Masalah, tujuan penulisan, batasan masalah, serta

istematika penulisan.

BAB II : LANDASAN TEORI

Dalam bab ini dijelaskan tentang teori pendukung yang

digunakan untuk pembahasan dan cara kerja dari

rangkaian teori pendukung itu antara lain tentang

Mikrokontroler Atmega 32A, Dot Matriks, bahasa

program yang dipergunakan, serta cara kerja dari

(16)

BAB III : RANCANGAN SISTEM

Pada bab ini akan dibahas perancangan dari alat , yaitu

blok dari rangkaian, skematik dari masing-masing

rangkaian dan diagram alir dari program yang diisikan ke

Mikrokontroler ATMega32A.

BAB IV : PENGUJIAN RANGKAIAN

Pada bab ini akan dibahas pengujian rangkaian dan hasil

pengujian dari Masing – masing pada rangkaian serta di

isikan program ke mikrokontroler ATMega32A.

BAB V : KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang

Kesimpulan dari pembahasan yang dilakukan dari tugas

akhir ini serta saran apakah rangkaian ini dapat dibuat

lebih efisien dan dikembangkan perakitannya pada suatu

(17)

BAB 2

LANDASAN TEORI

2.1 Dot Matriks atau Matriks LED

Matriks LED adalah sejumlah LED yang disusun dalam kolom dan baris.

LED-LED ini kemudian digunakan untuk menampilkan gambar-gambar atau

tulisan yang biasanya ditampilkan dengan efek animasi tertentu. Oleh karena itu,

matriks LED sering disebut sebagai Running Text atau Moving Sign.

Gambar 2.1 Dot Matriks

MXLED merupakan simulator dari rangkaian matriks LED. Dengan

simulator ini, kita bisa mencoba program pengendali matriks LED walaupun tanpa

hardware. MXLED membuat matriks LED dengan cara menyusun LED pada

jalur-jalur vertikal dan jalur-jalur horisontal. Kita harus menyediakan jalur

(18)

membuat jalur vertikal sebanyak jumlah kolom. Susunan jalur-jalur vertikal dan

horisontal tersebut adalah seperti gambar berikut:

Gambar 2.2 Susunan Jalur-Jalur Vertikal Dan Horisontal

Jalur-jalur vertikal dan horisontal tersebut tidak saling terhubung.

Kemudian, pada setiap titik pertemuan antara jalur vertikal dan horisontal

tersebut, pasanglah sebuah LED dengan cara menghubungkan anoda ke jalur

horisontal dan katoda ke jalur vertikal. Pemasangan LED tersebut adalah seperti

gambar berikut:

(19)

Dengan memasang LED seperti di atas, LED yang menyala adalah LED

dimana anodanya terhubung pada jalur horisontal yang tinggi (1) dan katodanya

terhubung pada jalur vertikal yang rendah (0). Hanya ada satu jalur vertikal yang

rendah pada satu waktu, sedangkan jalur-jalur lainnya harus tetap tinggi. Jalur

vertikal yang rendah ini kita sebut sebagai kolom aktif. Berbeda dengan jalur

vertikal, jalur horisontal yang terdiri dari delapan baris ini boleh bernilai tinggi

atau rendah tanpa harus memperhatikan jalur-jalur horisontal lainnya.

2.2 Moving text dengan IC 74HC595

Moving text dengan mode scanning lebih banyak digunakan untuk tujuan

komersil dibanding dengan mode static, tetapi masing-masing ada kelemahan dan

kelebihannya. Berikut ini adalah gambar rangkaian atau skema dari moving text

mode scan dengan menggunakan IC TTL 74HC595, untuk driver kolom juga

untuk driver baris yang dibantu oleh ULN2803

15

(20)

Salah satu kelebihan dari rangkaian ini adalah jumlah kabel hanya 5

1 . Vcc

2. GND

3. DATA

4. Clock

5. Latch

Prinsip pemrogramannya adalah sebagai berikut, kirim baris dan kirim

kolom secara serentak sebanyak jumlah kolom atau kirim kolom dan kirim baris

secara serentak sebanyak jumlah baris.

Kalau eeprom bawaan dari atmega32 masih terasa kurang, dapat

ditambahkan memory eeprom external seperti 24c64, demikian juga jika RTC

bawaan atmega32 kurang memuaskan, dapat ditambahkan DS1307 sebagai RTC

external. Display dapat juga disusun dengan led sehingga berbentuk matriks.

IC 74HS595 dipasang pada bagian belakang PCB untuk menghemat PCB sbb:

(21)

Pemasangan kabel dan pengujian dot matriks dapat dilakukan dengan cara

menguhubungkan kabel pada dot matriks tersebut. Agar kita dapat membuktikan

antara kolom dan baris hidup atau tidak. Atau menggunakan MATRIX LED 8X8

yang sudah jadi, sbb:

Gambar 2.6 Rangkaian Kabel yang dipasang Ke Dot Matriks

Selanjutnya kita menguji kolom dan baris, dengan ATmega32 untuk

membuktikan atau mengetes kolom dan baris pada dot matriks menyala atau tidak

led pada kordinat..

(22)

2.2.1 Program Menyalanya Led Pada Kordinat

kol = 0x01; // posisi kolom scanning

while (1)

{

// Place your code here

kar = 0x55; // data yang mau dikirim (baris)

while (1)

{

soe = 0;

shift_out(kar); // kirim baris

shift_out(kol); // kirim kolom

soe = 1;

delay_ms(150);

kol = kol << 1;

if (kol == 0) kol = 0x01;

}

}

(23)

Berikut ini adalah tampilan dari program diatas pada display led

Gambar 2.8 Tampilan Program Baris Dan Kolom

2.3 Mikrokontroler

Mikrokontroler adalah piranti elektronik berbentuk IC (integrated circuit)

yang memiliki kemampuan manipulasi data (informasi) berdasarkan suatuurutan

instruksi (program) yang dibuat oleh programmer. Mikrokontroler merupakan

contoh suatu sistem komputer sederhana yang masuk kedalam kategori embedded

system (sistem tertanam). Dalam sebuah struktur mikrokontroler akan kita temukan

juga kompunen – komponen seperti : processor, memory, clock dll.

Jika berbicara tentang mikrokontroler maka tidak terlepas dengan

pengertian atau definisi tentang komputer, ada beberapa kesamaan antara

mikrokontroler dengan komputer antara lain :

1. sama – sama memiliki unit pengolah pusat atau yang lebih dikenal dengan

Central Processing Unit (CPU).

2. CPU tersebut sama – sama menjalankan program dari suatu lokasi atau

tempat, biasanya dari ROM ( Read Only Memory ) atau RAM (Random

(24)

3. Sama – sama memiliki RAM yang digunakan untuk menyimpan data–

data sementara atau yang lebih dikenal dengan variabel.

4. Sama – sama memiliki beberapa masukan dan keluaran yang berfungsi

sebagai jalur komunikasi timbal balik dengan dunia luar.

Yang membedakan antara mikrokontroler dan komputer atau

mikrokomputer yaitu komputer atau mikrokomputer merupakan komputer

serbaguna (general purpose computer) yang bisa dimanfaatkan untuk

berbagai macam aplikasi atau perangkat lunak sedangkan mikrokontroler adalah

komputer berkemampuan khusus (special purpose computer) yang hanya dapat

menjalankan satu macam aplikasi saja sesuai dengan program atau aplikasi yang

telah dibuat oleh programmer.

Selain perbedaaan tersebut, mikrokontroler juga memiliki ciri khas tersendiri

diantaranya adalah:

1. Mikrokontroler bersifat tertanam (embedded ) pada satu atau beberapa

piranti yang dikenal dengan istilah embedded system atau sistem tertana.

2. Berfungsi untuk satu macam fungsi saja, dimana dalam laporan ini

berfungsi hanya untuk memantau kondisi mobil dan tidak dapat digunakan

untuk memutar musik atau aplikasi lainnya.

3. Hanya membutuhkan daya yang rendah (bisa dibawah 1 watt) bila

dibandingkan dengan komputer atau mikrokomputer yang menggunakan

daya yang besar (bisa diatas 10 watt bahkan lebih).

4. Memiliki beberapa jalur masukan (input) dan keluaran (output) yang

memiliki fungsi – fungsi khusus.

(25)

6. Beberapa jenis IC seringkali tahan banting khususnya untuk aplikasi

otomotif atau mesin dan militer.

Selain dengan komputer atau mikrokomputer, mikrokontroler juga

memiliki perbedaan dengan mikroprosesor. Salah satu perbedaan yang cukup

penting adalah jika mikroprosesor hanya merupakan sebuah CPU tanpa

adanya jalur input – output dan memori sedangkan mikrokontroler seperti

dijelaskan diatas umumnya memiliki CPU, memori, jalur input – output dan

beberapa fungsi atau fitur tertentu seperti ADC (Analog to Digital Converter) yang

sudah terintegrasi dalam IC mikrokontroler tersebut. Kelebihan utama dari

mikrokontroler adalah tersedianya RAM, jalur input – output dan fitur – fitur

pendukung dalam satu IC sehingga dalam aplikasinya memiliki rangkaian yang

ringkas dan dapat diminimalisir ukuran board atau rangkaiannya.

Terdapat berbagai jenis mikrokontroler dari berbagai vendor yang beredar

luas di dunia, diantaranya yang terkenal adalah Intel, Maxim, Motorolladan

Atmel. Pada pembuatan Interface ini menggunakan mikrokontroler produksi

Atmel yaitu Atmel AVR ATMEGA32.

2.4 Atmel AVR ATMega32

Atmel AVR adalah salah satu jenis mikrokontroler yang sering digunakan

dalam bidang elektronik dan instrumentasi. Mikrokontroler ini memiliki arsitektur

RISC (Reduce Instruction Set Computing) delapan bit, dimana semua instruksi

dikemas dalam kode 16-bit (16 bits word ) dan sebagian besar instruksi dieksekusi

(26)

Nama AVR sendiri berasal dari “Alf and Vegard RISC processor ” dimana Alf

Egil Bogen dan Vegard Wollan adalah dua penemu berkebangsaan Norwegia

yang menemukan mikrokontroler AVR yang kemudian diproduksi oleh Atmel.

Untuk menulis program pada AVR dapat mempergunakan beberapa jenis

software yaitu yang disediakan oleh Atmel sendiri yaitu AVR Studio dan beberapa

software buatan pihak ketiga diantaranya AVR GCC, WinAVR, Flowcode AVR,

CodeVisionAVR, BASCOM AVR dan lainnya. Dalam pembuatan interface ini

penulis menggunakan CodeVisionAVR C Compiler versi2.03.9 standar.

2.4.1 Fitur ATMega32

ATMega32 adalah mikrokontroler keluarga AVR produksi Atmel dengan

fitur sebagai berikut :

1. Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggidengan daya

rendah.

2. Arsitektur RISC dengan throughput mencapai 16 MIPS padafrekuensi 16

MHz.

3. Memiliki kapasitas Flash memori 32 Kbyte , EEPROM 1Kbyte, dan SRAM 2

KByte.

4. Saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C dan Port D.

5. CPU yang terdiri atas 32 buah register.

6. Unit interupsi internal dan eksternal.

7. Port USART untuk komunikasi serial.

8. Satu buah Timer/Counter 16 bit dengan Prescalerterpisah, mode Compare

(27)

9. Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan mode

Compare.

10.Real Time Counter dengan Oscillator tersendiri.

11.4 Channel PWM.

12.8 Channel 10 bit ADC.

2.4.2 Konfigurasi ATMega 32A

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

(28)

Gambar 2.9 konfigurasi 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

(29)

Port Alternate Function

PA7 ADC7 (ADC input channel 7)

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)

Tabel 2.1 Fungsi khusus port A

4. 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.

(30)

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)

PB3

AIN1 (Analog Comparator Negative Input)

OCO (Timer/Counter0 Output Compare Match Output)

PB2

AIN0 (Analog Comparator Positive Input)

INT2 (External Interrupt 2 Input)

PB1 T1 (Timer/Counter1 External Counter Input)

PB0

T0 (Timer/Counter External Counter Input) XCK (USART

External Clock Input/Output)

Tabel 2.2 Fungsi khusus port B

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 jika internal pull-up

resistor diaktifkan. Fungsi-fungsi khusus pin-pin port C dapat ditabelkan

seperti yang tertera pada tabel dibawah ini.

Port Alternate Function

PC7 TOSC2 (Timer Oscillator Pin 2)

(31)

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)

Tabel 2.3 Fungsi khusus port C

6. 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.

Port Alternate Function

PD7 OC2 (Timer / Counter2 Output Compare Match Output)

PD6 ICP1 (Timer/Counter1 Input Capture Pin)

PD6 OCIB (Timer/Counter1 Output Compare B Match Output)

PD5 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)

(32)

2.4.3 Blok Diagram ATMega32

(33)

2.4.4 Peta Memori AVR ATMega32

Arsitektur AVR mempunyai dua memori utama, yaitu memori datadan

memori program. Selain itu ATMega32 memiliki memori EEPROMuntuk

menyimpan data. ATMega32 memiliki 32 Kbyte On-chip

In-system Reprogrammable Flash Memory untuk menyimpan program. Karenasemua

instruksi AVR memiliki format 16 atau 32 bit, Flash diatur dalam8K x 16 bit.

Untuk keamanan program, memori program, flash dibagi kedalam dua bagian

yaitu bagian program boot dan aplikasi. Bootloader adalah program kecil yang

bekerja pada saat start up time yang dapatmemasukan seluruh program aplikasi

kedalam memori prosesor.

Gambar 2.11 Peta Memori Program AVR ATMega32

Memori data AVR ATMega32 terbagi menjadi 3 bagian yaitu 32buah register

umum, 64 buah register I/O dan 2 Kbyte SRAM internal. General purpose

register menempati alamat data terbawah, yaitu$00sampai $1F. Sedangkan memori

(34)

merupakan register yang khususdigunakan untuk mengatur fungsi terhadap

berbagai peripheral mikrokontroler seperti control register, Timer/Counter, fungsi –

fungsi I/Odam sebagainya

Gambar 2.12 Peta Memori Data AVR ATMega32

ATMega32 terdiri dari 1024 byte memori data EEPROM 8 bit, datadapat

tulis/baca dari memori ini. Ketika catu daya dimatikan, data terakhiryang ditulis

pada memori EEPROM masih tersimpan pada memori ini,atau dengan kata lain

(35)

2.5 General Purpose Register AVR

Gambar 2.13 General Purpose Register AVR

Gambar diatas menunjukan struktur 32 general purpose register yang terdapat

dalam CPU, masing – masing register ditentukan juga dalam alamat memori data,

dipetakan kedalam 32 lokasi pertama data user . Walaupun tidak secara fisik

diimplementasikan sebagai lokasi SRAM, namun pengaturan ini memberikan

fleksibilitas dalam mengakses register, seperti register pointer X, Y dan Z dapat

diset menuju index dari register file manapun.

2.6 RISC (Reduce Instruction Set Computing)

RISC (Reduce Instruction Set Computing) yang jika diterjemahkan berarti

“komputasi kumpulan instruksi yang disederhanakan” merupakan sebuah

arsitektur komputer dengan instruksi – instruksi dan jenis eksekusi yang paling

sederhana. Arsitektur ini digunakan pada komputer dengan kinerja tinggi seperti

(36)

pada prosessor komputer lain seperti pada beberapa mikroprosesor Intel 960,

Itanium (IA64) dari IntelCorporation, Alpha AXP dari DEC, R4x00 dari MIPS

Corporation, PowerPC dan Arsitektur POWER dari International Business

Machine. Selain itu, RISC juga umum dipakai pada Advanced RISC

Machine(ARM) dan StrongARM (termasuk di antaranya adalah Intel XScale),

SPARC dan UltraSPARC dari Sun Microsystems, serta PA-RISC

dariHewlett-Packard.

Desain RISC pertama kali digagas oleh John Cocke, peneliti dariIBM di

Yorktown, New York pada tahun 1974 saat ia membuktikanbahwa sekitar 20%

instruksi pada sebuah prosesor ternyata menangani sekitar 80% dari keseluruhan

kerjanya. Komputer pertama yangmenggunakan konsep RISC ini adalah IBM

PC/XT pada era 1980-an.Istilah RISC sendiri pertama kali dipopulerkan oleh

David Patterson,pengajar pada University of California di Berkely.

2.6.1 Arsitektur Mikrokontroler AVR RISC

(37)

Dari gambar diatas, AVR menggunakan arsitektur Harvard dengan

memisahkan antara memori dan bus untuk program dan data

untuk memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori

program dieksekusi dengan pipelining single level. Dimana ketika satu instruksi

dieksekusi, instruksi berikutnya diambil dari memori program.Konsep ini

mengakibatkan instruksi dieksekusi setiap clock cycle. CPUterdiri dari 32x8 bit

general purpose register yang dapat diakses dengancepat dalam satu clock cycle, yang

mengakibatkan operasi Arithmetic Logic Unit (ALU) dapat dilakukan dalam

satucycle. Pada operasi ALU dua operand berasal dari register , kemudian operasi

dieksekusi danhasilnya disimpan kembali pada register dalam satu clock cycle.

Operasi aritmatik dan logic pada ALU akan mengubah bit – bit yang terdapat

pada Status Register (SREG). Proses pengambilan instruksi dan pengeksekusian

instruksi berjalan secara parallel, dapat dilihat pada gambar dibawah ini :

Gambar 2.15 Pengambilan instruksi dan pengeksekusian secara parallel

2.7 Variabel

Variabel adalah tempat untuk menyimpan dan mengakses datayang

mewakili memori dalam mikrokontroler. Variabel harusdideklarasikan dengan

(38)

jangkauan bilangan yang dapat disimpan, hal ini akibat dari byte memori yang

dipesan dan bentuk bilangan bertanda atau tidak. Misalnya unsigned char oleh

kompilerdisediakan 1 byte memori RAM sehingga hanya bisa menampung

bilangan dari 0 sampai dengan 255 sedangkan jika bertanda dari -128sampai

dengan 127.

Tipe Data Sebetulnya tidak ada bilangan negatif pada mikrokontroler

namunhanya kesepakatan saja, perbedaan bilangan negatif dengan positif dan

mikrokontroler terletak pada bit msb atau bit paling kanan tipe data

yangdigunakan dimana msb=0 jika bilangan itu positif dan sebaliknya msb=1 jika

bilangan itu adalah negatif.Pada variabel dikenal sebuah variabel yang bernama

variabel global, variabel global adalah variabel yang dapat diakses oleh

seluruhblok fungsi dalam program. Pendeklarasian variabel gobal ini

biasanyadiletakan diatas semua program, nilai variabel global berubah tiap

kalivariabel itu diakses dan variabelnya tidak hilang (menetap). Nilai yang sedang

terjadi adalah nilai terakhir ketika variabel itu diakses baik oleh fungsi main

maupun fungsi – fungsi yang lain.Selain variabel global, ada juga variabel lokal.

Variabel lokal adalah variabel yang hanya dapat diakses oleh blok fungsi

yangbersangkutan atau terbatas didalam tanda {} deklarasi fungsi itu berada.

Pendeklarasian variabel lokal ini berada pada bagian atas didalam blok fungsi

yang menggunakan variabel tersebut. Variabel lokal akandihilangkan jika

eksekusi program keluar dari fungsi yang bersangkutandan nilainya pun hilang.

Jika menghendaki nilai variabel lokal tidak hilangmaka dalam deklarasi variabel

(39)

2.8 CodeVisionAVR

CodeVisionAVR adalah sebuah cross-compiler C, Integrated Development

Environtment (IDE) dan Automatic Program Generator yangdidesain untuk

milrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada

sistem operasi Windows 95, 98, ME, NT4, 2000 dan XP.

Mikrokontroler AVR diproduksi menggunakan teknologi high density

nonvolatile memory on-chip ISP flash yang memungkinkan program yang ada di

dalam memori dapat di reprogram in-sistem melalui serial interface SPI dengan

menggunakan konvensional nonvolatile memory programmer atau on-chip boot

program yang berjalan pada inti AVR. Boot program dapat menggunakan

interface apa saja untuk mendownload program pada memori flash.

Software pada boot sistem akan tetap bekerja ketika flash aplikasi ini

sedang di update, hal ini merupakan operasi “read-while-write”. Dengan

mengkombinasikan CPU 8-bit RISC bersama in-system self programmable flash

pada chip monolithic, ATmega32 merupakan mikrokontroler powerfull yang

fleksibel dan merupakan solusi efektif untuk berbagai aplikasi pengontrolan.

Adapun komponen-komponen yang dapat diamati melalui I/O pada workspace

sebagai berikut :

1. Isi register

- R0 sampai dengan R15

- R16 sampai dengan R13

2. Processor

- Stack pointer

(40)

- Cycle pointer

- X_register

- Y_register

- Z_register

- Frequency

- Stop Watch

3. I/O AVR

Adapun Instruksi I/O adalah sebagai berikut :

 in; membaca data I/O Port atau internal peripheral register{Timers,UART,

kedalam register}

 Out; menulis data sebuah register ke I/O Port atau internal peripheral

register.

 Idi (load immediate); untuk menulis konstanta ke register sebelum

konstanta itu dituliskan ke I/O port.

 Sbi (set bit in I/O); untuk membuat logika high satu bit I/O register.

 Cbi ( clear bit in I/O); untuk membuat logika low satu bit I/O register.

 Sbic (skip if bit in I/O is cleared); untuk mengecek apakah bit I/O register

clear.Jika ya, skip satu perintah dibawahnya.

 Sbis (skip if bit in I/O is set); untuk mengecek apakah bit I/O register set.

Jika ya, skip satu perintah dibawahnya.

2.8.1 Program Code-Vision AVR

Untuk mengaktifkan micro sistem akuisisi data, penerima sinyal control

(41)

program dengan cara mendownload program yang terlebih dahulu kita buat

dengan bahasa C pada CodeVisionAVR.

Gambar 2.16 Form pembuatan program micro chip (CodeVisionAVR).

2.8.2 Cara Menjalakn Code-Vision AVR

Software CodeVision AVR merupakan C Compiler untuk mikrokontroler

AVR. Pada CodeVision telah disediakan editor yang berfungsi untuk membuat

program dalam bahasa C, setela melakukan proses kompilasi kita dapat

mengisikan program yang telah dibuat ke dalam memory pada mikrokontroler

menggunakan programmer yang telah disediakan oleh CodeVision AVR.

Programmer yang didukung oleh CodeVision Programmer Cable dapat

diintegrasik dengan CodeVision AVR, terlebih dahulu harus dilakukan

konfigurasi sebagai berikut:

-Jalankan Software CodeVision AVR. -Pilih menu Setting . Programmer.

-Pilih tipe programmer

(42)

2.9 Pemrograman RTC DS1307 dengan Codevision.

RTC yang dimaksud disini adalah real time clock (bukan real time

computing), biasanya berupa IC yg mempunyai clock sumber sendiri dan internal

batery untuk menyimpan data waktu dan tanggal. Sehingga jika system komputer

/ microcontroller mati waktu dan tanggal didalam memori RTC tetap uptodate.

Salah satu RTC yang sudah populer dan mudah penggunaanya adalah DS1307,

apalagi pada Codevision sudah tersedia fungsi-fungsi untuk mengambil data

waktu dan tanggal untuk RTCDS1307 ini.

2.17 Gambar Fitur-Fitur DS1307

2.9.1 Fitur-fitur DS1307:

 Real-time clock (RTC) menghitung detik, menit, jam,tanggal,bulan dan

hari dan tahun valid sampai tahun 2100

 Ram 56-byte, nonvolatile untuk menyimpan data.

 2 jalur serial interface (I2C).

 output gelombang kotak yg diprogram.

(43)

 Konsumsi arus hanya 500nA pada batery internal.

 mode dg oscillator running.

 temperature range: -40°C sampai +85°C

Codevision sudah menyediakan fungsi-fungsi khusu untuk mengakses data

DS1307 jadi kita tinggal menggunakanya. Apalagi dengan fasilitas codewizard

pemrograman RTC menjadi mudah.

2.10Pemrograman Bahasa C Standard (ANSI C)

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara

bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat tinggi (bahasa

berorientase pada manusia). Bahasa C berada satu tingkat di atas bahasa yang

berorientasi pada mesin, namun tetap satu tingkat dibawah sebagian besar bahasa

yang berorientasi persoalan.

Bahasa C cukup dekat dengan komputer untuk memberikan kendali yang

besar terhadap detil implementasi pemakaian, namun cukup jauh untuk

mengabaikan detil hardware. Karena itulah bahasa C suatu ketika dipandang

sebagai bahasa high-level dan pada saat yang lain dilihat sebagai bahasa

low-level.

Bahasa C merupakan bahasa pemrograman terstruktur, yang membagi

program kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan

dalam pembuatan dan pengembangan program. Program yang ditulis dengan

bahasa C mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin

(44)

Hal ini berkat adanya standarisasi bahasa C yaitu berupa standar ANSI

(American National Standards Institute) yang dijadikan acuan oleh para pembuat

kompiler C. Memasukkan data dan menampilkan data/informasi merupakan

tindakan yang sering dilakukan dalam pemrograman. Penampilan data/informasi

biasanya ditujukan ke piranti layar (monitor), sedangkan pemasukan data biasanya

dilakukan melalui keyboard.

Untuk keperluan penampilan data/informasi, Turbo C menyediakan

sejumlah fungsi, diantaranya adalah PRINTF ( ), PUTS ( ) dan PUTCHAR ( ).

PRINTF ( ) Merupakan fungsi yang paling umum digunakan dalam

menampilkan data. Berbagai jenis data dapat ditampilkan ke layar dengan fungsi

ini. Bentuk penulisan : printf(“string kontrol”, argumen1, argumen2, …);

- String kontrol dapat berupa keterangan yang akan ditampilkan pada layar beserta

penentu format seperti %d, %f. Penentu format dipakai untuk memberi tahu

kompiler mengenai jenis data yang akan ditampilkan

- Argumen adalah data yang akan ditampilkan ke layar. Argumen ini dapatr

berupa variabel, konstanta atau ungkapan

PUTS ( ) Fungsi ini digunakan khusus untuk menampilkan data string ke

layar. Sifat fungsi ini, string yang ditampilkan secara otomatis akan diakhiri

dengan \n (pindah baris). Dibandingkan dengan printf(), perintah ini mempunyai

kode mesin yang lebih pendek.

PUTCHAR ( ) Digunakan khusus untuk menampilkan sebuah karakter ke

layar. Penampilan karakter tidak diakhiri dengan perpindahan baris, misalnya :

(45)

Memasukkan Data Dari Keyboard, Data dapat dimasukkan lewat keyboard saat

eksekusi berlangsung. Fungsi yang digunakan diantaranya adalah: scanf ( ), getch

(46)

BAB 3

RANCANGAN SISTEM

3.1 Perancangan Sistem Rangkaian

Perancangan sistem rangkaian terdiri dari dua bagian yaitu perancangan

sistem perangkat keras dan perancangan sistem perangkat lunak. Sistem perangkat

keras yang digunakan untuk pembuatan sistem terdiri dari beberapa bagian atau

komponen utama. Setiap komponen ini membutuhkan antarmuka yang merupakan

jalur komunikasi dengan komponen lainnya dan sebagai titik koneksi sumber daya

atau tegangan yang dibagi dengan komponen lainnya. Oleh karena itu,

perancangan antarmuka ini tidak boleh sembarangan dan harus lebih diperhatikan

kelebihan dan kekurangannya. Misalnya saja dari segi komunikasi, antarmuka

yang dibuat untuk komponen yang bersangkutan nantinya harus dapat membuat

komponen ini dapat berkomunikasi dengan komponen-komponen lainnya. Jika

antarmuka komponen ini nantinya juga dapat digunakan untuk pengembangan

sistem perangkat keras lainnya atau dapat bekerja dengan kecepatan yang tinggi

sehingga tidak membutuhkan penundaan waktu yang cukup lama untuk

mengeksekusi suatu perintah atau instruksi, maka hal ini merupakan nilai lebih

(47)
(48)

 

(49)

3.2 Diagram Blok

Gambar 3.3 Blok Eeprom dari ATmega32

Kalau eeprom bawaan dari atmega32 masih terasa kurang, dapat

ditambahkan memory eeprom external seperti 24c64, demikian juga jika RTC

bawaan atmega32 kurang memuaskan, dapat ditambahkan DS1307 sebagai RTC

(50)

Untuk jelasnya perhatikan diagram block berikut ini:

Gambar 3.4 Gambar Blok dengan DS1307 sebagai RTC External

Secara garis besar, perancangan alat moving text dengan Dot Matriks

berbasis ATmega32 terdiri dari empat blok rangkaian utama. Untuk dapat

mengetahui tampilan Moving Text yang dihasilkan menggunakan Dot Matriks.

Mikrokontroller ATmega32 merupakan otak dari seluruh system. Di dalam

mikrokontroler inilah semua data akan diolah.

3.3 Perancangan Power Supplay (PSA)

Rangkaian ini berfungsi untuk mensupplay tegangan ke seluruh rangkaian

yang ada. Rangkaian PSA yang dibuat terdiri dari dua keluaran, yaitu 5 volt dan

12 volt, keluaran 5 volt digunakan untuk mensupplay tegangan ke seluruh

rangkaian, sedangkan keluaran 12 volt digunakan untuk mensuplay tegangan ke

(51)

Vreg

Gambar 3.5 Rangkaian Power Supplay (PSA)

Trafo CT merupakan trafo stepdown yang berfungsi untuk menurunkan tegangan

dari 220 volt AC menjadi 12 volt AC. Kemudian 12 volt AC akan disearahkan

dengan menggunakan dua buah dioda, selanjutnya 12 volt DC akan diratakan oleh

kapasitor 2200 μF. Regulator tegangan 5 volt (LM7805CT) digunakan agar

keluaran yang dihasilkan tetap 5 volt walaupun terjadi perubahan pada tegangan

masukannya. LED hanya sebagai indikator apabila PSA dinyalakan. Transistor

PNP TIP 32 disini berfungsi untuk mensupplay arus apabila terjadi kekurangan

arus pada rangkaian, sehingga regulator tegangan (LM7805CT) tidak akan panas

ketika rangkaian butuh arus yang cukup besar. Tegangan 12 volt DC langsung

diambil dari keluaran 2 buah dioda penyearah.

3.4 Relay

Beberapa aplikasi pada industri dan kontrol proses memerlukan relay

sebagai elemen kontrol penting. Relay merupakan saklar elektromagnetik yang

berfungsi untuk memutuskan, membuat atau mengubah satu atau lebih kontak

elektrik. Ada beberapa macam relay yang terdapat di pasaran. Pada pokoknya

(52)
(53)

bergerak. Kontak yang bergerak dipasang pada plunger. Kontak ditunjuk sebagai

normally open (NO) dan normally close (NC). Apabila kumparan diberi tenaga,

terjadi medan elektromagnetis. Aksi dari medan pada gilirannya menyebabkan

plunger bergerak pada kumparan kontak NO dan membuka kontak NC. Jarak

gerak plunger biasanya pendek yaitu sekitar 0,25 inchi atau kurang. Kontak NO

akan membuka ketika tidak ada arus mengalir pada kumparan, tetapi tertutup

secepatnya setelah kumparan menghantarkan arus atau diberi tenaga. Kontak NC

akan tertutup apabila kumparan tidak diberi daya dan membuka ketika kumparan

diberi daya. Masing-masing kontak biasanya digambarkan sebagai kontak yang

tampak dengan kumparan tidak diberi daya. Sebagian besar relay kontrol mesin

mempunyai beberapa ketentuan untuk pengubahan kontak NO menjadi NC, atau

sebaliknya. Itu berkisar dari kontak sederhana (flip-over) untuk melepaskan

kontak dan menempatkan kembali dengan perubahan lokasi pegas.Berikut jenis

gambar relay yang dipasaran.

3.5 Perancangan rangkaian Real Time Clock (RTC) DS1307

RTC adalah jenis pewaktu yang bekerja berdasarkan waktu yang

sebenarnya atau dengan kata lain berdasarkan waktu yang ada pada jam kita. Agar

dapat berfungsi, pewaktu ini membutuhkan dua parameter utama yang harus

ditentukan, yaitu pada saat mulai (start) dan pada saat berhenti (stop).

(54)

DS1307 merupakan salah satu tipe IC RTC yang dapat bekerja dalam daya listrik

rendah. Di dalamnya berisi waktu jam dan kalender dalam format BCD. Waktu

jam dan kalender memberikan informasi detik, menit, jam, hari, tanggal, bulan,

dan tahun. Pendeteksi sumber listrik juga disediakan untuk mendeteksi kegagalan

sumber listrik dan langsung mengalihkannya ke sumber baterai. RTC difungsikan

sebagai penyimpan data jam walaupun sumber tegangan utama mati atau rusak.

3.6 Saklar

Saklar adalah sebuah perangkat yang digunakan untuk memutuskan

jaringan listrik, atau untuk menghubungkannya. Jadi saklar pada dasarnya adalah

alat penyambung atau pemutus aliran listrik. Selain untuk jaringan listrik arus

kuat, saklar berbentuk kecil juga dipakai untuk alat komponen elektronika arus

lemah.

Secara sederhana, saklar terdiri dari dua bilah logam yang menempel pada

suatu rangkaian, dan bisa terhubung atau terpisah sesuai dengan keadaan sambung

(on) atau putus (off) dalam rangkaian itu. Material kontak sambungan umumnya

dipilih agar supaya tahan terhadap korosi. Kalau logam yang dipakai terbuat dari

bahan oksida biasa, maka saklar akan sering tidak bekerja. Untuk mengurangi

efek korosi ini, paling tidak logam kontaknya harus disepuh dengan logam anti

korosi dan anti karat. pada dasarnya tombol bisa diaplikasikan untuk sensor

mekanik, karena bisa dijadikan sebagai pedoman pada mikrokontroller untuk

(55)
(56)

BAB 4

PENGUJIAN RANGKAIAN

4.1 Pengujuan Rangkaian Power Suplay

Pengujian rangkaian power supply ini bertujuan untuk mengetahui

tegangan yang dikeluarkan oleh rangkaian tersebut, dengan mengukur tegangan

keluaran dari power supply menggunakan multimeter digital. Setelah dilakukan

pengukuran maka diperoleh besarnya tegangan keluaran sebesar 5 volt. Dengan

begitu dapat dipastikan apakah terjadi kesalahan terhadap rangkaian atau tidak.

Jika diukur, hasil dari keluaran tegangan tidak murni sebesar +9 Volt dan +12

Volt, tetapi +8.97Volt dan +12.03 Volt. Hasil tersebut dikarenakan beberapa

faktor, diantaranya kualitas dari tiap-tiap komponen yang digunakan nilainya

tidak murni. Selain itu, tegangan jala-jala listrik yang digunakan tidak stabil.

4.2

Pengujian Rangkaian Mikrokontroler ATMega32

Pengujian pada rangkaian mikrokontroler ATMega32 ini dapat dilakukan

dengan menghubungkan rangkaian ini dengan rangkaian power supply sebagai

sumber tegangan. Kaki 10 dihubungkan dengan sumber tegangan 5 volt,

sedangkan kaki 11 dihubungkan dengan ground. Kemudian tegangan pada kaki 10

diukur dengan menggunakan Voltmeter. Langkah selanjutnya adalah memberikan

program sederhana pada mikrokontroler ATMega32, program yang diberikan

(57)

#include <mega32.h>

#include <delay.h>

#include <stdio.h>

while (1)

{

// Place your code here

PORTA=0xFF;

DDRA=0xFF;

{

delay_us(100);

PORTA=0x00;

DDRA=0x00;

}

4.3 Pengujian Rangkaian Relay

Pengujian rangkaian relay dapat dilakukan dengan memberikan tegangan 5

volt dan 0 volt pada basis transistor C945. Transistor C945 merupakan transistor

jenis NPN, transistor jenis ini akan aktip jika pada basis diberi tegangan > 0,7 volt

dan tidak aktif jika pada basis diberi tegangan < 0,7 volt. Aktifnya

transistor akan mengaktifkan relay. Pada alat ini relay digunakan untuk

mengaktifkan/menonaktifkan motor dc secara otomatis, dimana hubungan yang

digunakan adalah normally open (NO), berarti relay aktif jika diberi input 5 volt

(high) dari mikrokontroler. Dengan demikian jika relay aktip maka motor dc juga

(58)

Pengujian dilakukan dengan memberikan tegangan 5 volt pada basis

transistor, jika relay aktip dan motor dc juga aktif, maka rangkaian ini telah

berfungsi dengan baik. Pengujian selanjutnya dilakukan dengan menghubungkan

input rangkaian ini ke mikrokontroler pada PD.0 kemudian memberikan

program sederhana pada mikrokontroler ATmega. Program yang diberikan

adalah sebagai berikut:

PORTD.0=1

. . .

Perintah di atas akan memberikan logika high pada PD.0, sehingga PD.0

akan mendapatkan tegangan 5 volt. Tegangan 5 volt ini akan mengaktipkan

transistor C945, sehingga relay menjadi aktip dan kipas juga aktif. Berikutnya

memberikan program sederhana untuk menonaktipkan relay. Programnya sebagai

berikut:

PORTD.0=0

. . .

Perintah di atas akan memberikan logika low pada PD.0 sehingga PD.0

akan mendapatkan tegangan 0 volt. Tegangan 0 volt ini akan menonaktipkan

transistor C945, sehingga relay menjadi tidak aktip dan kipas juga tidak aktif.

4.4 Analisa Bahasa Pemrograman

Bahasa C adalah bahasa pemrograman yang dapat dikatakan berada antara

bahasa tingkat rendah (berorientase mesin) dan bahasa tingkat tinggi (bahasa

(59)

berorientasi pada mesin, namun tetap satu tingkat dibawah sebagian besar bahasa

yang berorientasi persoalan.

Bahasa C cukup dekat dengan komputer untuk memberikan kendali yang

besar terhadap detil implementasi pemakaian, namun cukup jauh untuk

mengabaikan detil hardware. Karena itulah bahasa C suatu ketika dipandang

sebagai bahasa high-level dan pada saat yang lain dilihat sebagai bahasa

low-level.

Bahasa C merupakan bahasa pemrograman terstruktur, yang membagi

program kedalam bentuk sebuah blok. Tujuannya adalah untuk memudahkan

dalam pembuatan dan pengembangan program. Program yang ditulis dengan

bahasa C mudah sekali untuk dipindahkan dari satu jenis mesin ke jenis mesin

lainnya.

Hal ini berkat adanya standarisasi bahasa C yaitu berupa standar ANSI

(American National Standards Institute) yang dijadikan acuan oleh para pembuat

kompiler C. Memasukkan data dan menampilkan data/informasi merupakan

tindakan yang sering dilakukan dalam pemrograman. Penampilan data/informasi

biasanya ditujukan ke piranti layar (monitor), sedangkan pemasukan data biasanya

(60)

4.5 Pengujian Rangkaian dengan Menjalankan Program

Berikut adalah listing program untuk mengetes huruf R pada matriks 8x8

apakah sudah berfungsi:

/*******************************************************

This program was created by the

CodeWizardAVR V3.08 Standard

Automatic Program Generator

© Copyright 1998-2013 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 12/28/2013

Author :

Company :

Comments:

Chip type : ATmega32A

Program type : Application

AVR Core Clock frequency: 16.000000 MHz

Memory model : Small

External RAM size : 0

(61)

*******************************************************/

#include <mega32a.h>

#include <serialout.h>

#include <delay.h>

#define sdt PORTC.2

#define sclk PORTC.3

#define soe PORTC.4

// Declare your global variables here

void main(void)

{

// Declare your local variables here

unsigned char kol, kar;

kol = 0x01; // posisi kolom scanning

// huruf_R =0xff,0xff,0x11,0x31,0x71,0xdf,0x8e,0x00; baris

// kolom 1 2 3 4 5 6 7 8 kolom

while (1)

(62)

// Place your code here

kar = 0x55; // data yang mau dikirim (baris)

while (1)

{

soe = 0;

kol = 0x01;

kar = 0xff;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x02;

kar = 0xff;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

(63)

soe = 0;

kol = 0x04;

kar = 0x11;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x08;

kar = 0x31;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x10;

kar = 0x71;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

(64)

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x20;

kar = 0xdf;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x40;

kar = 0x8e;

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

soe = 0;

kol = 0x80;

(65)

shift_out(kol); // kirim kolom

shift_out(kol); // kirim kolom

shift_out(kar); // kirim baris

soe = 1;

delay_ms(2);

}

}

}

Display dengan matrix yang disusun dengan LED atau menggunakan LED

matrix 8x8 yang sudah jadi, sama saja. Perbedaannya cuma pada saat perakitan,

pembuatan display dengan menyusun LED lebih repot.

Moving Text yang sudah jadi, pengaturannya adalah sebagai berikut:

4.6 Pengisian text

Text dapat diisi dalam 6 halaman

F1 untuk mengisi halaman 1 max 1000 karakter

F2 untuk mengisi halaman 2 max 1000 karakter

F3 untuk mengisi halaman 3 max 1000 karakter

F4 untuk mengisi halaman 4 max 1000 karakter

F5 untuk mengisi halaman 5 max 1000 karakter

F6 untuk mengisi halaman 6 max 1000 karakter

Jika text terisi sudah melebihi 1000, maka otomatis tersimpan dan tulisan

(66)

Setiap pengisian halaman diakhiri dengan spasi dan tekan enter, sebaiknya

diakhiri dengan spasi sebanyak 6 spasi untuk menjaga jarak antar halaman tidak

terlalu berdekatan dan tekan tombol ENTER,

Pada saat pengetikan dapat ditekan BACKSPACE untuk mengapus

ketikan yang salah, kemudian diteruskan dengan mengetik yang benar.

4.7 Pengisian Demo

F7 untuk mengisi demo 1 max sepanjang display

F8 untuk mengisi demo 2 max sepanjang display

F9 untuk mengisi demo 3 max sepanjang display

F10 untuk mengisi demo 4 max sepanjang display

F11 untuk mengisi demo 5 max sepanjang display

F12 untuk mengisi demo 6 max sepanjang display

Pada pengisian demo tidak ada fasilitas untuk menghapus, jika ada yang

salah, tekan enter dan ulangi nomor fungsi dan ketik kembali dengan benar

kemudian enter.

4.8 Penghapusan text

Text dapat diisi dalam 6 halaman dapat dihapus dengan cara

Menghapus halaman 1 Tekan F1 dan tekan spasi kemudian enter

Menghapus halaman 2 Tekan F2 dan tekan spasi kemudian enter

Menghapus halaman 3 Tekan F3 dan tekan spasi kemudian enter

Menghapus halaman 4 Tekan F4 dan tekan spasi kemudian enter

(67)

Menghapus halaman 6 Tekan F6 dan tekan spasi kemudian enter

4.9 Menghapus Demo

Menghapus DEMO 1 Tekan F7 dan tekan spasi kemudian enter

Menghapus DEMO 2 Tekan F8 dan tekan spasi kemudian enter

Menghapus DEMO 3 Tekan F9 dan tekan spasi kemudian enter

Menghapus DEMO 4 Tekan F10 dan tekan spasi kemudian enter

Menghapus DEMO 5 Tekan F11 dan tekan spasi kemudian enter

Menghapus DEMO 6 Tekan F12 dan tekan spasi kemudian enter

4.10 Font

Tekan tombol CAPSLOCK atau SHIFT untuk mengubah bentuk font dari

karakter tipis menjadi karakter tebal, lampu CAPSLOCK akan kelihatan menyala

warna merah pada box hitam yang berhubungan dengan keyboard.

Pada saat lampu hijau menyala, berarti tulisan huruf kecil,

(68)

BAB 5

KESIMPULAN DAN SARAN

5.1Kesimpulan

1. Penggunaan Dot Matriks lebih bagus sehingga dapat menampilkan

tampilan yang kita inginkan dalam pengujiannya akan lebih menarik.

2. Alat ini dapat selama 24 jam dan tidak dapat berhenti, terkecuali mati

listrik.

5.2 Saran

1. Dengan beberapa pengembangan dan penyempurnaan sistem dari alat

ini

akan dapat lebih sempurna lagi hasilnya.

2. Penggunaan Dot Matriks yang lebih bagus sehingga dapat

menampilkan tampilan yang kita inginkan dalam pengujiannya akan

lebih menarik.

3. Diharapakan pembaca dapat memberi saran dan kritik terhadap

(69)

DAFTAR PUSTAKA

Budiharto, Widodo. 2005. Panduan Lengkap Belajar Mikrokontroller

Perancangan

Sistem dan Aplikasi Mikrokontroller. Jakarta: PT. Alex Media

Komputindo.

Elektur, 1996. 302 Rangkaian Elektronika. Penerjemah P.Pratomo dkk. Jakarta:

Percetakan PT.Gramedia.

Sultan Setiawan, 2006. Mudah dan Menyenagkan Belajar Mikrokontroler.

Andi Offset.

http://www.sulhansetiawan.com/id/merancang-rangkaian-matriks-led

(70)
(71)

Program Untuk Mengetes Huruf R Pada Matriks 8x8

/******************************************************* This program was created by the

CodeWizardAVR V3.09 Standard Automatic Program Generator

© Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com

Project : rtx Feb 2014 Version : 0.9

Date : 3/28/2013 Author : kbram Company : ekatron Comments:

Chip type : ATmega32A Program type : Application

AVR Core Clock frequency: 16.000000 MHz Memory model : Small

External RAM size : 0 Data Stack size : 512

*******************************************************/

(72)

#define sdt PORTC.2 #define sclk PORTC.3 #define soe PORTC.4

#define led PORTC.7

#define signal PIND.0 #define dt_in PINA

unsigned char jam, menit, detik;

// Declare your global variables here unsigned char const pj_kolom = 48;

unsigned char dm_jam[] = {0x00,'1','2',':','3','1',0xaa};

flash char hrf_1[]={0x82,0xff,0xff,0x80,0x00,0x00}; //1 6 flash char hrf_2[]={0x82,0xc1,0xe1,0xb1,0x9f,0x8e,0x00,0x00}; //2 8

flash char hrf_3[]={0x42,0x81,0x89,0x89,0xff,0x76,0x00,0x00}; //3 8

flash char hrf_4[]={0x30,0x38,0x24,0xa2,0xff,0xff,0xa0,0x00,0x00}; //4 9

flash char hrf_5[]={0x4f,0x8f,0x89,0x89,0xf9,0x71,0x00,0x00}; //5 8

flash char hrf_6[]={0x7e,0xff,0x89,0x89,0x89,0xf9,0x72,0x00,0x00}; //6 9

(73)

flash char hrf_8[]={0x76,0xff,0x89,0x89,0x89,0xff,0x76,0x00,0x00}; //8 9

flash char hrf_9[]={0x4e,0x9f,0x91,0x91,0x91,0xff,0x7e,0x00,0x00}; //9 9

flash char hrf_0[]={0x7e,0xff,0x81,0x81,0x81,0xff,0x7e,0x00,0x00}; //0 9

flash char hrf_tnd_ttk_koma[]={0x36,0xb6,0x76,0x00,0x00}; //; 5

// I2C Bus functions #include <i2c.h>

// DS1307 Real Time Clock functions #include <ds1307.h>

// Declare your global variables here

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void) {

// Place your code here

signed int txt_idx; bit isi, txt;

(74)
(75)

if (txt_idx < 2) iprom_write(p1_sts_addr,0); text[txt_idx] = 0xaa;

for (ee_addr = page1_start; ee_addr < page1_end; ee_addr++) {

xkar = text[pg_idx]; pg_idx++;

iprom_write(ee_addr,xkar); if (xkar == 0xaa) break; }

break;

} }

}

/// entering page 2

if (key_in == 0x06) // page 2 if F2 is pressed {

txt_idx = 0; while (1) {

isi = 0;

(76)
(77)
(78)
(79)
(80)
(81)
(82)
(83)

} }

}

/// entering demo 2

if (key_in == 0x0a) // demo 2 if F8 is pressed {

txt_idx = 0; while (1) {

isi = 0;

for (idx = 0; idx < pj_kol; idx++) // satu kali tampil {

for (ndx = 0; ndx < 8; ndx ++) // satu baris {

kirim_kolom(pj_kol,ndx); // sepanjang display }

}

if (key_in == 13) {

pg_idx = 0;

(84)
(85)
(86)
(87)
(88)
(89)
(90)

// Timer1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) {

unsigned char jh, jl, mh, ml; // Reinitialize Timer1 value TCNT1H=0x85EE >> 8; TCNT1L=0x85EE & 0xff; // Place your code here

led_tick++;

if (led_tick == 1) led = 0; if (led_tick > 3) led = 1;

if (led_tick > 15) led_tick = 0; rtc_get_time(&jam,&menit,&detik); jh = jam/10;

jl = jam%10; mh = menit/10; ml = menit%10; }

void main(void) {

// Declare your local variables here

(91)

// Input/Output Ports initialization // Port A initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

// Port B initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=Out Bit1=Out Bit0=Out

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=0 Bit1=0 Bit0=0 PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

// Port C initialization

// Function: Bit7=Out Bit6=In Bit5=In Bit4=Out Bit3=Out Bit2=Out Bit1=In Bit0=In

DDRC=(1<<DDC7) | (0<<DDC6) | (0<<DDC5) | (1<<DDC4) | (1<<DDC3) | (1<<DDC2) | (0<<DDC1) | (0<<DDC0);

// State: Bit7=0 Bit6=T Bit5=T Bit4=0 Bit3=0 Bit2=0 Bit1=T Bit0=T PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

// Port D initialization

(92)

DDRD=(0<<DDD7) | (1<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

// State: Bit7=T Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected

TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);

// Input Capture on Falling Edge // Timer Period: 0.5 s

(93)

// Compare A Match Interrupt: Off // Compare B Match Interrupt: Off

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (1<<CS12) | (0<<CS11) | (0<<CS10);

TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);

TCNT2=0x00; OCR2=0x00;

(94)

TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (1<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

// External Interrupt(s) initialization // INT0: On

// INT0 Mode: Falling Edge // INT1: Off

// INT2: Off

GICR|=(0<<INT1) | (1<<INT0) | (0<<INT2);

MCUCR=(0<<ISC11) | (0<<ISC10) | (1<<ISC01) | (0<<ISC00); MCUCSR=(0<<ISC2);

GIFR=(0<<INTF1) | (1<<INTF0) | (0<<INTF2);

// USART initialization // USART disabled

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

// Analog Comparator initialization // Analog Comparator: Off

// The Analog Comparator's positive input is // connected to the AIN0 pin

// The Analog Comparator's negative input is // connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

Gambar

Gambar 2.1 Dot Matriks
Gambar 2.2 Susunan Jalur-Jalur Vertikal Dan Horisontal
Gambar 2.4 Rangkaian Moving Text Mode Scan dengan IC TTL 74HC595
Gambar 2.5 Rangkaian Belakang PCB
+7

Referensi

Dokumen terkait

Telah dirancang suatu alat multi locker dengan penyandian berbasis mikrokontroler ATmega 8 menggunakan android phone. Alat ini terdiri dari mekanis pintu locker,

PERENCANAAN DAN PEMBUATAN ALAT PENAMPIL INFORMASI MENGGUNAKAN DOT MATRIX RGB DENGAN PENGONTROLAN VIA REMOTE KONTROL TV BERBASIS MIKROKONTROLER ATMEGA 64.. Diajukan Untuk

Adapun judul laporan ini yaitu “ RANCANG BANGUN ALAT PENGERING RAMBUT OTOMATIS MENGGUNAKAN DERET SENSOR BERBASIS MIKROKONTROLER ATMEGA 8535 ”.. Tujuan dari penulisan

Lapor an akhir ini berjudul “Komunikasi Bluetooth HC -06 pada pengontrolan robot Vacuum Cleaner menggunakan Smartphone Android berbasis Mikrokontroler Atmega

Penelitian ini mempunyai tujuan untuk membuat rangkaian running text menggunakan dot matrix display P10 dan mikrokontroler ATmega328, serta menganalisa cara kerja untuk

Mikrokontroler Atmega 328 dapat diaktifkan dengan catu daya eksternal. Adaptor ini dapat dihubungkan dengan menancapkan plug positif 2.1mm ke colokan listrik. Dari

Mikrokontroler ATmega 8535 merupakan pusat pengontrol dari alat ini yang dihubungkan dengan keypad sebagai input untuk memasukan kode mata kuliah kemudian melalui

ABSTRAK Sistem Keamanan Akses Point Berbasis RFID Menggunakan Mikrokontroler ATMega 2560 Oleh: Muammar Azis Rialdi Permasalahan keamanan untuk memasuki wilayah yang penting didalam