PERANCANGAN POV (PERSISTENCE OF VISION) DENGAN
POSISI SUSUNAN LED VERTIKAL
Nama : Hosea Suranta Ginting
NRP : 0622105
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha
Jl. Prof. Drg. Suria Sumantri,MPH. no. 65, Bandung, Indonesia
Email :
hoseasurantaginting@yahoo.co.id
ABSTRAK
Penggunaan POV (Persistence Of Vision) biasanya digunakan sebagai
suatu alat untuk hiburan. Selain itu, dapat digunakan sebagai tampilan dalam
memperkenalkan suatu produk tertentu sesuai dengan program yang telah
diciptakan. Umumnya POV tidak dapat diprogram sesuai keinginan pengguna,
timbul gagasan untuk membuat sebuah POV yang dapat dengan mudah di
program sesuai keinginan.
Pada tugas akhir ini dirancang suatu perangkat berbasis mikrokontroler
ATmega 32 sebagai pengendali LED RGB dan motor pada POV dengan posisi
LED vertical. Kecepatan motor dikendalikan melalui PWM. Perangkat yang
direalisasi diuji dengan 11 macam tampilan yang berbeda sesuai dengan program
yang telah terlebih dahulu dimasukan dalam mikrokontroler ATmega 32 dan
hasilnya sesuai dengan harapan.
Dari hasil uji coba, tampilan POV terlihat baik pada duty cycle maksimum
= 100% pada warna LED merah.
THE DESIGNING POV (PERSISTENCE OF VISION) WITH
VERTICAL POSITION OF THE LED ARRANGEMENT
Nama : Hosea Suranta Ginting
NRP : 0622105
Department of Electrical Engineering, Faculty of Engineering
Maranatha Christian University
Jl. Prof. Drg. Suria Sumantri,MPH. no. 65, Bandung, Indonesia
Email :
hoseasurantaginting@yahoo.co.id
ABSTRACT
The use of POV (Persistence Of Vision) is usually used as a tool for
entertainment., Moreover, it can be used to display in introducing a specific
product in accordance with a program that has been created. POV generally can
not be programmed according to user desires, the idea to create a POV that can
easily be programmed as desired.
In this final project, designed a device based on microcontroller ATmega
32 as controller LEDs RGB and as a motor controller for the POV with vertical
LED position. Motor’s speed is controlled via PWM. Realized devices were tested
with eleven different kinds of view according to the programs that have been first
included in the microcontroller ATmega 32 and the results are in line with
expectations.
From the test results, view POV look good on maximum duty cycle =
100% on the color of red LED
’
s.
DAFTAR ISI
Halaman
ABSTRAK ...
i
ABSTRACT ...
ii
KATA PENGANTAR...
iii
DAFTAR ISI ...
v
DAFTAR GAMBAR ... viii
DAFTAR TABEL ...
xi
BAB I PENDAHULUAN
I.1 Latar Belakang ...
1
I.2 Perumusan Masalah ...
1
I.3 Tujuan ...
1
I.4 Pembatasan Masalah ...
2
I.5 Sistematika Penulisan ...
2
BAB II LANDASAN TEORI
II.1 Pengertian POV (Persistence Of Vision) ...
4
II.2 Jenis-jenis Animasi ...
4
II.2.1 Cell Animation ...
4
II.2.2 Stop Motion Animation ...
5
II.2.3 3D Animation ...
6
II.3 Scanning pada Sistem POV ...
6
II.4 Mikrokontroler ...
7
I.4.1 Mikrokontroler ATmega 32 ...
7
II.4.1.1 Struktur ATmega 32 ...
7
II.4.1.2 Konfigurasi PIN ATmega 32 ...
8
II.4.1.4 Timer ...
12
II.4.1.4.1 Timer/Counter 0 ...
12
II.4.1.4.2 Prescaler ...
13
II.4.1.4.3 Mode Operasi ...
14
II.5 IC Decoder 74139 ...
17
II.6 LED RGB ...
18
II.7 IC L293D ...
19
II.8 Sensor Sinkronisasi...
21
II.8.1 LDR ...
21
II.8.2 IC LM358 ...
22
II.9 Keypad ...
23
II.9.1 Susunan Matriks Keypad ...
23
II.9.2 Scanning Matriks Keypad ...
24
II.10 Teori Motor DC ...
26
BAB III PERANCANGAN SISTEM
III.1 Blok Diagram POV ...
27
III.1.1 Pengendali LED pada POV ...
27
III.1.1.1 ATmega 32 ...
28
III.1.1.1.1 Pengendali LED RGB pada ATmega 32 ...
28
III.1.1.1.1.1 Hubungan Antara ATmega 32 dengan IC
74139 ...
33
III.1.1.1.1.2 Hubungan Antara IC 74139 dengan LED ...
33
III.1.1.1.2 Pengendali Motor pada ATmega 32 ...
34
BAB IV DATA PENGAMATAN
IV.1 Pengaturan PWM dengan Berbagai Nilai Duty Cycle ...
37
IV.2 Pengujian Tampilan Huruf dan Angka ...
38
IV.3 Pengujian Tampilan dengan Perubahan Tombol Keypad ...
40
IV.3.1 Tampilan Keypad Tombol 1 (“MARANATHA”) warna merah
....
41
IV.3.2 Tampilan Keypad Tombol 2 (“MARANATHA”) warna hijau
...
41
IV.3.3 Tampilan Keypad
Tombol 3 (“MARANATHA”) warna biru
...
41
IV.3.4 Tampilan Keypad Tombol 4 (“HOSEA”) warna merah
...
42
IV.3.5 Tampilan Keypad Tombol 5 (“HOSEA”) warna hijau
...
42
IV.3.6 Tampilan Keypad Tombol 6 (“HOSEA”) warna biru
...
42
IV.3.7 Tampilan Keypad Tombol 7 (“ELEKTRO”) warna merah
...
43
IV.3.8 Tampilan Keypad Tombol 8 (“ELEKTRO”) warna hijau
...
43
IV.3.9 Tampilan Keypad Tombol 9 (“ELEKTRO”) warna biru
...
43
IV.3.10 Tampilan
Keypad Tombol * (“ I ♥ YOU”)
...
44
IV.3.11 Tampilan Keypad Tombol 0 (“B3”) warna warni
...
44
IV.3.12 Ta
mpilan Keypad Tombol # (“MARANATHA”) warna merah,
“HOSEA” warna hijau, dan “ELEKTRO” warna merah
...
45
IV.3.13 Pengukuran Sinyal dengan Menggunakan Osiloskop ...
46
BAB V KESIMPULAN DAN SARAN
V.1 Kesimpulan ...
47
V.2 Saran ...
47
DAFTAR PUSTAKA ...
48
LAMPIRAN A KODE PROGRAM
LAMPIRAN B FOTO ALAT
LAMPIRAN C KOMBINASI KARAKTER
LAMPIRAN D SKEMATIK RANGKAIAN
DAFTAR GAMBAR
Gambar 2.1
Proses Gerakan Berjalan pada Animasi Tradisional ...
5
Gambar 2.2
Ilustrasi Tampilan Proses Scanning pada POV ...
6
Gambar 2.3
Chip ATmega 32 ...
7
Gambar 2.4
Konfigurasi Pin ATmega 32 ...
9
Gambar 2.5
Register ATmega 32 ...
11
Gambar 2.6
Pemetaan Memori ATmega 32 ...
12
Gambar 2.7
Diagram Blok Timer 0 ATmega 32 ...
13
Gambar 2.8
Pulsa Mode Normal ...
14
Gambar 2.9
Pulsa Mode CTC...
15
Gambar 2.10
Pulsa Mode Fast PWM ...
16
Gambar 2.11
Pulsa Mode Phase Correct PWM ...
17
Gambar 2.12
Chip IC 74139...
17
Gambar 2. 13
Konfigurasi Pin IC 74139 ...
17
Gambar 2.14
Bentuk nyata LED RGB ...
19
Gambar 2.15
Warna yang Dihasilkan oleh LED RGB ...
19
Gambar 2.16
Chip IC L293D ...
20
Gambar 2.17
Gambar Rangkaian IC L293D ...
20
Gambar 2.18
LDR ...
21
Gambar 2.19
Chip IC LM358...
22
Gambar 2.20 (a) Konfigurasi pin IC LM358 ...
22
Gambar 2.20 (b) Karakteristik ICLM358 ...
22
Gambar 2.21
Keypad 3X4 ...
23
Gambar 2.22
Susunan Tombol Tekan Disusun Secara Matriks ...
24
Gambar 2.23 (a) Scanning Matriks Keypad (1) ...
24
Gambar 2.23 (b) Scanning Matriks Keypad (2) ...
25
Gambar 2.24
Konstruksi Motor DC ... 26 A
Gambar 2.25
Penentuan Arah Gaya Pada Kawat Berarus Listrik Dalam
Medan Magnet ... 26 A
Gambar 3.1
Pengendali LED RGB dan Motor pada POV ...
27
Gambar 3.2
Skema Rangkaian Pengendali LED RGB dan Motor pada
POV ...
28
Gambar 3.3
Sensor Sinkronisasi ...
30
Gambar 3.4
Contoh Penggunaan 8 buah LED pada POV yang
menampilkan B3 (dengan garis hijau) ...
30
Gambar 3.5
Contoh Perancangan Tampilan B3 ...
31
Gambar 3.6
Hubungan IC 74139 dengan LED ...
33
Gambar 3.7
Diagram Alir dari Pengendali LED RGB pada POV ...
36
Gambar 4.1 (a)
Duty Cycle 70 % ...
37
Gambar 4.1 (b)
Duty Cycle 80 % ...
37
Gambar 4.1 (c)
Duty Cycle 90 % ...
37
Gambar 4.1 (d)
Duty Cycle 100 % ...
37
Gambar 4.2 (a)
Huruf A-J ...
38
Gambar 4.2 (b)
Huruf K-T ...
38
Gambar 4.2 (c)
Huruf U-Z ...
38
Gambar 4.2 (d)
Angka 0-9 ...
38
Gambar 4.3 (a)
Huruf A-J ...
39
Gambar 4.3 (b)
Huruf K-T ...
39
Gambar 4.3 (c)
Huruf U-Z ...
39
Gambar 4.3 (d)
Angka 0-9 ...
39
Gambar 4.4 (a)
Huruf A-J ...
40
Gambar 4.4 (b)
Huruf K-T ...
40
Gambar 4.4 (d)
Angka 0-9 ...
40
Gambar 4.5
Tulisan “MARANATHA”
warna merah...
41
Gambar 4.6
Tulisan “MARANATHA” warna hijau
...
41
Gambar 4.7
Tulisan “MARANATHA” warna biru
...
41
Gambar 4.8
Tulisan “HOSEA” warna merah
...
42
Gambar 4.9
Tulisan “HOSEA” warna hijau
...
42
Gambar 4.10
Tulisan “HOSEA” warna biru
...
42
Gambar 4.11
Tulisan “ELEKTRO” warna merah
...
43
Gambar 4.12
Tulisan “ELEKTRO” warna hijau
...
43
Gambar 4.13
Tulisan “ELEKTRO” warna biru
...
43
Gambar 4.14
Tulisan “I ♥ YOU”
...
44
Gambar 4.15
Tulisan “B3” warna warni
...
44
Gambar 4.16 (a)
Tulisan “MARANATHA” warna merah
...
45
Gambar 4.16 (b)
Tulisan “HOSEA” warna hijau
...
45
Gambar 4.16 (c)
Tulisan “
ELEKTRO
” warna merah
...
45
Gambar 4.17 (a)
Pengukuran sinyal menggunakan osiloskop pada tulisan
“MARANATHA” warna merah
...
46
Gambar 4.17 (b)
Pengukuran sinyal menggunakan osiloskop pada tulisan
“MARANATHA” warna hijau
...
46
DAFTAR TABEL
Tabel 2.1
Fungsi Khusus Port B ATmega 32 ...
9
Tabel 2.2
Fungsi Khusus Port C ATmega 32 ...
10
Tabel 2.3
Fungsi Khusus Port D ATmega 32 ...
10
Tabel 2.4
Tabel Kebenaran IC 74139 ...
18
Tabel 2.5
Kondisi Motor Berdasarkan Logic A dan B...
20
Tabel 2.6
Status Scanning Keypad 3×4...
26
Tabel 3.1
Setting Konfigurasi Pengendali LED pada POV ...
29
Tabel 3.2
Perbedaan Warna Berdasarkan Logic ...
33
Tabel 3.3
Hubungan Duty Cycle dengan OCR0 ...
34
LAMPIRAN A
Pengendali LED RGB dan Motor pada POV
/******************************************** *********
This program was produced by the CodeWizardAVR V2.04.8b Evaluation Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com Project :
Version : Date : 11/4/2011
Author : Freeware, for evaluation and non-commercial use only
Company : Comments:
Chip type : ATmega32 Program type : Application
AVR Core Clock frequency: 12.000000 MHz Memory model : Small
External RAM size : 0 Data Stack size : 512
********************************************* ********/
#include <mega32.h> #include <delay.h>
#define KOLOM1 PORTD.1 #define KOLOM2 PORTD.2 #define KOLOM3 PORTD.3 #define BARIS1 PIND.4 #define BARIS2 PIND.5 #define BARIS3 PIND.6 #define BARIS4 PIND.7 unsigned char key;
// External Interrupt 2 service routine
interrupt [EXT_INT2] void ext_int2_isr(void) {
if (PINB.5==1) //aktifkan motor {
// Place your code here
if (key=='1') //tulisan MARANATHA (warna merah) {
PORTB.7=0; //huruf A PORTB.6=1; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
delay_us(1400);
PORTB.7=0; //huruf T PORTB.6=1; PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=1; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf N PORTB.6=1; PORTA=0b00000001; delay_us(700); PORTA=0b11110111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11011111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=1; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTA=0b01101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=1; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf M PORTB.6=1; PORTA=0b00000001; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b11001111; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='2') //tulisan MARANATHA (warna hijau) {
PORTB.7=1; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf T PORTB.6=0; PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf N PORTB.6=0; PORTA=0b00000001; delay_us(700); PORTA=0b11110111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11011111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf R PORTB.6=0;
delay_us(700); PORTA=0b01100111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf M PORTB.6=0; PORTA=0b00000001; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b11001111; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='3') //tulisan MARANATHA (warna biru) {
PORTB.7=0; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTA=0b11101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf T PORTB.6=0; PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf N PORTB.6=0; PORTA=0b00000001; delay_us(700); PORTA=0b11110111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11011111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf R PORTB.6=0;
delay_us(700); PORTA=0b01101011; delay_us(700); PORTA=0b01100111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf M PORTB.6=0; PORTA=0b00000001; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b11001111; delay_us(700); PORTA=0b10111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='4') //tulisan HOSEA (warna merah) {
PORTB.7=0; //huruf A PORTB.6=1; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=1;
PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf S PORTB.6=1; PORTA=0b10110011; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b10011011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf O PORTB.6=1; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf H PORTB.6=1; PORTA=0b00000001; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='5') //tulisan HOSEA (warna hijau) {
PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1700);
PORTB.7=1; //huruf E PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf S PORTB.6=0; PORTA=0b10110011; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b10011011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf O PORTB.6=0; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(1400);
delay_us(1400); } else { PORTA=0b11111111; };
if (key=='6') //tulisan HOSEA (warna biru) {
PORTB.7=0; //huruf A PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b10101111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf S PORTB.6=0; PORTA=0b10110011; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b10011011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf O PORTB.6=0; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(2100); PORTA=0b11111111; delay_us(700); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf H PORTB.6=0;
delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b11101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='7') //tulisan ELEKTRO (warna merah) {
PORTB.7=0; //huruf O PORTB.6=1; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(2100); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf R PORTB.6=1; PORTA=0b10011101; delay_us(700); PORTA=0b01101011; delay_us(700); PORTA=0b01100111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b00000001; delay_us(1400); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf T PORTB.6=1; PORTA=0b01111111; delay_us(1400); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(1400); PORTA=0b11111111; delay_us(1400);
PORTA=0b11100111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=1; PORTA=0b01101101; delay_us(2800); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf L PORTB.6=1; PORTA=0b11111101; delay_us(2800); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=1; PORTA=0b01101101; delay_us(2800); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='8') //tulisan ELEKTRO (warna hijau) {
PORTB.7=1; //huruf O PORTB.6=0; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf T PORTB.6=0; PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf K PORTB.6=0; PORTA=0b01111101; delay_us(700); PORTA=0b10111011; delay_us(700); PORTA=0b11010111; delay_us(700); PORTA=0b11100111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf E PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf L PORTB.6=0; PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf E PORTB.6=0;
delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='9') //tulisan ELEKTRO (warna biru) {
PORTB.7=0; //huruf O PORTB.6=0; PORTA=0b10000011; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b01111101; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b11111111; delay_us(700); PORTA=0b10000011; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf R PORTB.6=0; PORTA=0b10011101; delay_us(700); PORTA=0b01101011; delay_us(700); PORTA=0b01100111; delay_us(700); PORTA=0b01101111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf T PORTB.6=0; PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b01111111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTA=0b01111101; delay_us(700); PORTA=0b10111011; delay_us(700); PORTA=0b11010111; delay_us(700); PORTA=0b11100111; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf L PORTB.6=0; PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b11111101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf E PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b01101101; delay_us(700); PORTA=0b00000001; delay_us(700); PORTA=0b11111111; delay_us(1400); } else { PORTA=0b11111111; };
if (key=='*') //tulisan I LOVE YOU (biru-merah-hijau) {
PORTB.7=1; //huruf U (hijau) PORTB.6=0;
delay_us(700); PORTA=0b11111110; delay_us(2100); PORTA=0b11111111; delay_us(700); PORTA=0b11100000; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf O (hijau) PORTB.6=0; PORTA=0b11000001; delay_us(700); PORTA=0b11011101; delay_us(2100); PORTA=0b11111111; delay_us(700); PORTA=0b11000001; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=1; //huruf Y (hijau) PORTB.6=0; PORTA=0b00011111; delay_us(700); PORTA=0b11011111; delay_us(700); PORTA=0b11000011; delay_us(700); PORTA=0b11011111; delay_us(700); PORTA=0b00011111; delay_us(700); PORTA=0b11111111; delay_us(1400);
PORTB.7=0; //huruf LOVE (merah) PORTB.6=1; PORTA=0b10001111; delay_us(700); PORTA=0b00000111; delay_us(1400); PORTA=0b10000001; delay_us(700); PORTA=0b00000111; delay_us(1400); PORTA=0b10001111; delay_us(700); PORTA=0b11111111; delay_us(1400);
if (key=='0') // B(merah)3(biru) garis bawahnya hijau {
PORTB.7=0; //angka 3 (biru) PORTB.6=0; PORTA=0b10010011; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //angka 3 (biru) PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //angka 3 (biru) PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //angka 3 (biru) PORTB.6=0; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //angka 3 (biru) PORTB.6=0; PORTA=0b10111011; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //huruf B (merah) PORTB.6=1;
delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //huruf B (merah) PORTB.6=1; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //huruf B (merah) PORTB.6=1; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
PORTB.7=0; //huruf B (merah) PORTB.6=1; PORTA=0b01101101; delay_us(700); PORTA=0b11111111; delay_us(1); PORTB.7=1; PORTB.6=0; PORTA.0=0; delay_us(700); PORTA=0b11111111; delay_us(1);
// Declare your global variables here void main(void)
{
// Declare your local variables here // Input/Output Ports initialization // Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00; DDRA=0xFF; // Port B initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In // State7=0 State6=0 State5=P State4=T State3=0 State2=P State1=T State0=T
PORTB=0x24; DDRB=0xC8; // Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00; DDRC=0x00; // Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=P State6=P State5=P State4=P State3=P State2=P State1=P State0=T
PORTD=0xFE; DDRD=0x0E;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 12000.000 kHz // Mode: Phase correct PWM top=0xFF // OC0 output: Non-Inverted PWM
TCCR0=0x61; TCNT0=0x00; OCR0=0xFF;
// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;
OCR2=0x00;
// External Interrupt(s) initialization // INT0: Off
// INT1: Off // INT2: On
// INT2 Mode: Falling Edge GICR|=0x20;
MCUCR=0x00; MCUCSR=0x00; GIFR=0x20;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;
// USART initialization // USART disabled UCSRB=0x00;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80; SFIOR=0x00;
// ADC initialization // ADC disabled ADCSRA=0x00;
// SPI initialization // SPI disabled SPCR=0x00;
// TWI initialization // TWI disabled
TWCR=0x00;
// Global enable interrupts #asm("sei")
PORTA=0b11111111; while (1)
{
// Place your code here
KOLOM1 = 0; KOLOM2 = 1; KOLOM3 = 1; delay_us(900);
if (BARIS1==0) key = '1'; if (BARIS2==0) key = '4'; if (BARIS3==0) key = '7'; if (BARIS4==0) key = '*';
KOLOM1 = 1; KOLOM2 = 0; KOLOM3 = 1; delay_us(900);
if (BARIS1==0) key = '2'; if (BARIS2==0) key = '5'; if (BARIS3==0) key = '8'; if (BARIS4==0) key = '0';
KOLOM1 = 1; KOLOM2 = 1; KOLOM3 = 0; delay_us(900);
if (BARIS1==0) key = '3'; if (BARIS2==0) key = '6'; if (BARIS3==0) key = '9'; if (BARIS4==0) key = '#'; }
LAMPIRAN B
Foto Alat POV
Papan Triplek
Sensor Magnet
Keypad
Batere Lippo
Motor DC
LED RGB
LAMPIRAN C
LAMPIRAN C
LAMPIRAN D
LAMPIRAN E
DATASHEET
BAB I
PENDAHULUAN
Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah,
perumusan masalah, tujuan, pembatasan masalah, dan sistematika penulisan
laporan Tugas Akhir.
I.1. Latar Belakang
Persistence of Vision merupakan suatu tampilan yang muncul akibat
pergantian waktu yang cepat. Tampilan tersebut dimunculkan oleh barisan LED
yang berputar.
Cara pembuatan dan penggunaan Persistence of Vision berkembang dengan
pesat, tetapi seringkali hanya dapat menampilkan suatu tampilan yang monoton
dan tidak banyak pilihan.
Mikrokontroler adalah
single chip
komputer yang memiliki kemampuan untuk
diprogram dan digunakan untuk tugas-tugas yang berorientasi pengendalian.
Dalam tugas akhir ini, dibuat sebuah alat untuk menampilkan Persistence Of
Vision yang
programmable
yaitu dapat dengan mudah diubah tampilannya sesuai
dengan keinginan dari penggunanya. POV (Persistence Of Vision) dirancang
menggunakan mikrokontroler ATmega 32 sebagai pengendali nyala 8 buah LED
RGB (Red Green Blue) dan pengendali motor.
I.2. Perumusan Masalah
Perumusan masalah dalam pembuatan Tugas Akhir ini adalah bagaimana
membuat POV yang dapat menampilkan text serta
programmable
?
I.3. Tujuan
Tujuan yang hendak dicapai dari pembuatan Tugas Akhir ini adalah membuat
BAB I PENDAHULUAN
I.4. Pembatasan Masalah
Pembatasan masalah dalam pembuatan Tugas Akhir ini adalah:
1.
Dapat menampilkan 11 macam tampilan berbeda yang telah diprogram
terlebih dahulu.
2.
Tampilan berupa text, angka dan simbol.
3.
Menggunakan 8 buah LED sebagai tampilan POV.
4.
Pemrograman secara
offline.
I.5. Sistematika Penulisan
Sistematika penulisan laporan Tugas Akhir ini dibagi menjadi 5 bab yang
disusun sebagai berikut:
Bab I : Pendahuluan
Pada bab ini akan dibahas mengenai latar belakang, identifikasi masalah,
perumusan masalah, tujuan, pembatasan masalah, dan sistematika
penulisan laporan Tugas Akhir.
Bab II : Landasan Teori
Pada bab ini akan dijelaskan mengenai pengertian POV (Persistence Of
Vision), jenis-jenis animasi, mikrokontroler, IC decoder 74139, LED
RGB, IC L293D, sensor sinkronisasi, keypad, dan teori motor DC.
Bab III : Perancangan dan Realisasi
Pada bab ini akan dijelaskan mengenai pengendali LED RGB dan motor
pada POV serta keypad sebagai input untuk mengubah tampilan yang akan
ditampilkan pada POV secara offline.
Bab IV : Data Pengamatan dan Analisa Data
Pada bab ini akan dicantumkan dan dibahas mengenai percobaan POV
BAB I PENDAHULUAN
tampilan huruf, angka, dan simbol dengan mengunakan duty cycle
maksimum, serta pengujian tampilan dengan perubahan penekanan
tombol pada keypad.
Bab V : Kesimpulan dan Saran
Bab ini merupakan bab penutup yang berisi kesimpulan-kesimpulan dan
BAB V
KESIMPULAN DAN SARAN
Bab ini merupakan bab penutup yang berisi kesimpulan hasil penelitian
dan analisis dari masalah yang dihadapi serta saran bagi pihak yang terkait
berkenaan dengan pembuatan POV (Persistence Of Vision) dalam Tugas Akhir
ini.
V.1. Kesimpulan
Kesimpulan yang didapat dari Tugas Akhir ini adalah :
1.
Pembuatan POV (Persistence Of Vision) dengan posisi LED vertikal dengan
ATmega 32 sebagai pengendali LED RGB dan motor berhasil direalisasikan
dan sesuai dengan harapan.
2.
Tampilan terlihat baik pada duty cycle maksimum = 100% pada warna LED
merah.
V.2. Saran
Saran yang dapat diberikan dalam Tugas Akhir ini adalah:
1.
Agar putaran motor lebih stabil kecepatannya, digunakan sistem loop tertutup
(closed loop).
2.
Agar dapat dikembangkan dalam skala besar (Billboard).
DAFTAR PUSTAKA
1.
Ardrianto, Heri. 2008. Pemograman Mikrokontroler AVR ATMEGA 16,
Bandung: Informatika.
2.
Heryanto, Ary. 2008. Pemrograman Bahasa C untuk Mikrokontroler
ATMEGA 8535, Yogyakarta: Andi.
3.
http://www.alumnilp3i.com/mode-operasi-timercounter-atmega8535-dan-atmega16.html, tanggal 21 November 2011.
4.
http://www.scribd.com/doc/16169959/5/B-Jenis-Jenis-Animasi, tanggal 1
Desember 2011.
5.
http://www.surabayapost.co.id/?mnu=berita&act=view&id=c598801fd72e
9687777afe74cbebe1f2/jenisanimasi, tanggal 1 Desember 2011.
6.
http://agfi.staff.ugm.ac.id/blog/index.php/2009/09/peredupan-led-rgb/,
tanggal 1 Desember 2011.
7.
http://embedtronix.com/2011/01/interfacing-matrix-keypad-dengan-mikrokontroler/, tanggal 11 November 2011.
8.
http://deo-ebp.blogspot.com/2011/08/keypad-3x4-atmega8535.html,
tanggal 1 Desember 2011.
9.
http://hme.ee.itb.ac.id/elektron/?p=32, tanggal 1 Desember 2011.
10.