Perancangan dan Realisasi Scrolling Text Display Berdasarkan Input Dari PC Secara Nirkabel.
i
Universitas Kristen Maranatha PERANCANGAN DAN REALISASI SCROLLING TEXT DISPLAY
BERDASARKAN INPUT DARI PC SECARA NIRKABEL Albertus Adrian Chandra
Email : juztd0it_81818@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. drg. Suria Sumantri, MPH 65
Bandung 40164, Indonesia
ABSTRAK
Sistem komunikasi nirkabel merupakan sistem komunikasi yang semakin popular sekarang ini. Hal ini membuat proses pertukaran informasi dan komunikasi menjadi cepat dan mudah. Scrolling text display merupakan sebuah perangkat yang dapat digunakan untuk menyampaikan informasi berupa tulisan yang bergerak.
Dalam Tugas Akhir ini dilakukan perancangan dan realisasi scrolling text display berdasarkan input dari PC secara nirkabel. Input data diisi melalui Visual Basic 6.0. Komunikasi yang digunakan adalah komunikasi serial dengan menggunakan modul Xbee-PRO XBP24-1083. Scrolling text display dirancang dengan menggunakan IC counter 4017 yang dikontrol oleh mikrokontroler ATMEGA32.
Hasil pengujian menunjukkan bahwa scrolling text display dapat menerima input data dengan baik. Komunikasi nirkabel yang dapat dilakukan antar Xbee-PRO XBP24-1083 adalah 15 meter pada ruangan dan 250 meter pada luar ruangan.
Kata Kunci: komunikasi nirkabel, komunikasi serial, scrolling text display, mikrokontroler ATMEGA32, Xbee-PRO
(2)
ii
Universitas Kristen Maranatha DESIGN AND REALIZATION OF SCROLLING TEXT DISPLAYS
BASED ON WIRELESS INPUT FROM PC Albertus Adrian Chandra
Email : juztd0it_81818@yahoo.com
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. drg. Suria Sumantri, MPH 65
Bandung 40164, Indonesia
ABSTRACT
Wireless communication system is a communication system that is becoming more popular today. This makes the process of exchange of information and communication becomes fast and easy. Scrolling text display is a device that can be used to give an information in the form of a letter that moves.
In this final assignment, scrolling text display based on wireless input from the PC is designed and realized. Input data is filled with Visual Basic 6.0. Communication that is used is serial communication with Xbee-PRO XBP24-1083 module. Scrolling text display is designed using IC 4017, which is controlled by microcontroller ATmega32.
Test results show that display scrolling text can be input as well. Wireless connectivity that can be done between XBP24 XBee-PRO-1083 is 15 meters indoors and outdoors at 250 meters.
Keywords: wireless communication, serial communication, scrolling text display, microcontroler ATMEGA32, Xbee-PRO
(3)
v
Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR TABEL ... viii
DAFTAR GAMBAR ... ix
DAFTAR LAMPIRAN ... xi
BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ... 1
1.2. Identifikasi Masalah ... 1
1.3. Perumusan Masalah ... 1
1.4. Tujuan ... 2
1.5. Pembatasan Masalah ... 2
1.6. Spesifikasi Sistem ... 2
1.7. Blok Diagram, Keterangan dan Cara Kerja ... 3
1.8. Sistematika Penulisan ... 4
BAB II DASAR TEORI 2.1. Mikrokontroler ... 5
2.1.1 Pengenalan ATMEL AVR RISC ... 5
2.1.2 Mikrokontroler ATmega 32 ... 6
2.1.2.1 Fitur ATmega32 ... 6
2.1.2.2 Blok Diagram ATmega32 ... 8
2.1.2.3 Konfigurasi Pin ATmega 32 ... 9
2.1.2.4 Peta Memori AVR ATmega32 ... 12
2.1.2.4.1 Memori Program ... 12
2.1.2.4.2 Memori Data (SRAM ) ... 13
2.1.2.4.3 Memori Data EEPROM ... 14
(4)
vi
Universitas Kristen Maranatha 2.1.2.6 USART (The Universal Synchronous and Asynchronous
serial Receiver and Transmitter) ATmega32 ... 15
2.1.2.6.1 USART Register Description ... 16
2.2. Komunikasi Serial ... 20
2.3. RS-232 ... 20
2.4. IC MAX232 ... 21
2.5. Komunikasi Nirkabel ... 22
2.5.1 Modul RF Maxstream Xbee-PRO ... 23
2.5.1.1 Fitur Utama Xbee-PRO ... 24
2.5.1.2 Konfigurasi Pin Xbee-PRO ... 24
2.5.1.3 Adressing Xbee-PRO ... 25
2.6. Modulasi ... 26
2.6.1 O-QPSK ... 26
2.6.2 Direct Sequence Spread Spectrum (DSSS) ... 27
2.7. Decade Counter 4017... 27
2.8. IC ULN 2803 ... 28
2.9. IC 7408 ... 28
2.10. Led Matriks ... 29
2.11. Visual Basic ... 30
2.12. Transistor Sebagai Saklar ... 31
BAB III PERANCANGAN DAN REALISASI 3.1. Perancangan Hardware ... 32
3.1.1 Modul Pengirim ... 32
3.1.2 Xbee-PRO Penerima dan Mikrokontroler ATmega32 ... 33
3.1.3 Perancangan Scrolling Text Display ... 35
3.2. Perancangan Software ... 32
3.2.1 Algoritma Program pada Mikrokontroler ... 38
3.2.1.1 Diagram Alir Interrupt Serial ... 39
3.2.1.2 Diagram Alir Isi Data1, Isi Data2 dan Isi Data3 ... 40
(5)
vii
Universitas Kristen Maranatha
3.2.1.4 Diagram Alir Framing ... 42
3.2.1.5 Diagram Alir Data Isi1, Data Isi2 dan Data Isi3 ... 43
3.2.1.6 Diagram Alir Clear_frame ... 45
3.2.1.7 Diagram Alir Scanning1, Scanning2 dan Scanning3 ... 45
3.2.1.8 Kode Karakter ... 48
3.2.2 Algoritma Program pada Visual Basic... 49
3.2.2.1 Diagram Alir Reset ... 50
3.2.2.2 Diagram Alir Kirim ... 51
3.2.2.3 Konfigurasi Xbee-PRO ... 52
3.2.3 Form pada Visual Basic ... 54
BAB IV DATA PENGAMATAN 4.1.Pengujian Pengiriman Input Data ... 55
4.2.Pengujian Jarak Komunikasi Modul Xbee-PRO ... 56
4.3.Pengujian Address Transmitter dan Receiver ... 57
BAB V PENUTUP 5.1.Kesimpulan ... 58
5.2.Saran ... 58
(6)
viii
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 2.1 Fungsi Khusus Port A ... 10
Tabel 2.2 Fungsi Khusus Port B ... 11
Tabel 2.3 Fungsi Khusus Port C ... 11
Tabel 2.4 Fungsi Khusus Port D ... 12
Tabel 2.5 Konfigurasi I/O ATmega32 ... 15
Tabel 2.6 Baud Rate ... 17
Tabel 2.7 Lebar Frekuensi dan Kecepatan Data ZigBee ... 23
Tabel 2.8 Karakterisik Pin Xbee-PRO ... 25
Tabel 2.9 Contoh Konfigurasi Pengalamatan 16-bit ... 26
Tabel 2.10 Tabel Kebenaran Gerbang AND ... 29
Tabel 3.1 Kode Karakter ... 48
Tabel 4.1 Pengujian Pengiriman Input Data ... 55
Tabel 4.2 Pengujian Jarak Komunikasi Modul Xbee-PRO di Luar Ruangan ... 56
Tabel 4.3 Pengujian Jarak Komunikasi Modul Xbee-PRO di Dalam Ruangan ... 57
(7)
ix
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Blok Diagram ATmega32 ... 8
Gambar 2.2 Pinout ATmega32 ... 9
Gambar 2.3 Peta Memori Program ATmega32 ... 13
Gambar 2.4 Peta Memori Data ATmega32 ... 14
Gambar 2.5 Blok USART ... 16
Gambar 2.6 UDR ... 16
Gambar 2.7 UBRR ... 17
Gambar 2.8 UCSRA ... 18
Gambar 2.9 UCSRB ... 18
Gambar 2.10 UCSRC ... 19
Gambar 2.11 Konfigurasi Pin MAX232 ... 22
Gambar 2.12 Level Tegangan RS-232 ... 22
Gambar 2.13 Level Tegangan TTL/CMOS ... 22
Gambar 2.14 Modul RF Maxstream Xbee-PRO ... 23
Gambar 2.15 Konfigurasi Pin Xbee-PRO ... 24
Gambar 2.16 Diagram Fasor O-QPSK ... 26
Gambar 2.17 Konfigurasi IC 4017 ... 27
Gambar 2.18 Penambahan Counter ... 27
Gambar 2.19 Skema Rangkaian IC ULN 2803 ... 28
Gambar 2.20 Konfigurasi IC 7408 ... 29
Gambar 2.21 Konfigurasi Led Matriks ... 29
Gambar 2.22 Tampilan jendela VB 6 ... 30
Gambar 3.1 Blok Diagram Sistem ... 32
Gambar 3.2 Rangkaian Skematik Modul Pengirim ... 33
Gambar 3.3 Rangkaian Skematik Mikrokontroler ATmega32 dan Modul Xbee-PRO ... 34
Gambar 3.4 Transistor sebagai Saklar ... 35
(8)
x
Universitas Kristen Maranatha
Gambar 3.6 Diagram Alir Utama Program pada Mikrokontroler ... 38
Gambar 3.7 Diagram Alir Interrupt Serial ... 39
Gambar 3.8 Diagram Alir Isi Data1, Isi Data2 dan Isi Data3 ... 41
Gambar 3.9 Diagram Alir Konversi... 42
Gambar 3.10 Diagram Alir Framing ... 43
Gambar 3.11 Diagram Alir Data Isi1 dan Data Isi2 ... 44
Gambar 3.12 Diagram Alir Clear_frame ... 45
Gambar 3.13 Diagram Alir Scanning1 dan Scanning2 ... 46
Gambar 3.14 Diagram Alir Scanning3 ... 47
Gambar 3.15 Bentuk Karakter R ... 48
Gambar 3.16 Diagram Alir Utama Program pada Visual Basic ... 49
Gambar 3.17 Diagram Alir Reset ... 50
Gambar 3.18 Format Data ... 51
Gambar 3.19 Diagram Alir Kirim... 51
Gambar 3.20 Diagram Alir Setting Lama ... 52
Gambar 3.21 Diagram Alir Setting Baru ... 53
(9)
xi
Universitas Kristen Maranatha
DAFTAR LAMPIRAN
LAMPIRAN A
PROGRAM PADA VISUAL BASIC... A-1 LAMPIRAN B
PROGRAM PADA MIKROKONTROLER ... B-1 LAMPIRAN C
SKEMATIK SCROLLING TEXT DISPLAY ... C-1 BOARD SCROLLING TEXT DISPLAY ... C-2 SKEMATIK MIKROKONTROLER DAN XBEE-PRO ... C-3 FOTO ALAT ... C-4 LAMPIRAN D
MAX232 ... D-1 XBEE-PRO ... D-5 ULN2803 ... D-11 IC 4017 ... D-14
(10)
LAMPIRAN A
(11)
A-1 VARIABEL GLOBAL
Dim i, x, z, k, panjang As Integer Dim s, si As String
FORM
Private Sub Form_Load() MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1" MSComm1.InputLen = 0
MSComm1.PortOpen = True End Sub
EXIT
Private Sub Command3_Click() Unload Me
End Sub RESET 1
Private Sub reset_Click() z = 1
i = FreeFile
Open "D:\UDR.txt" For Input As #i Do Until EOF(i)
Input #i, s
s1 = s1 & s & IIf(EOF(i), "", vbCrLf) Loop
Close #i
If Len(s1) > 0 Then
MSComm1.Output = Space(63 - Len(s1)) Text1.SetFocus
End If End Sub RESET 2
Private Sub Command2_Click() z = 1
i = FreeFile
Open "D:\UDR.txt" For Output As #i Print #i, ""
Close #i End Sub SEND
(12)
A-2 Dim a As String
Dim c, d, e As Integer c = Len(Text1.Text) d = Len(Text2.Text) e = Len(Text4.Text) If z = 0 Then 'message box
Dim Msg3, Style3, Title3, Help3, Ctxt3, Response3, Mystring3 Msg3 = "Silahkan reset dahulu!"
Style3 = vbOKOnly + vbInformation + vbDefaultButton2 Title3 = "Info"
Help3 = "DEMO.HLP" Ctxt3 = 1000
Response3 = MsgBox(Msg3, Style3, Title3, Help3, Ctxt3) If Response3 = vbOK Then
reset.SetFocus End If
End If
If c = 0 And d = 0 And e = 0 Then 'message box
Dim Msg, Style, Title, Help, Ctxt, Response, Mystring Msg = "Silahkan Masukkan Teks!!"
Style = vbOKOnly + vbInformation + vbDefaultButton2 Title = "Info"
Help = "DEMO.HLP" Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt) If Response = vbOK Then
Text1.SetFocus End If
End If
If c > 25 Or d > 25 Or e > 6 Then 'message box
Dim Msg1, Style1, Title1, Help1, Ctxt1, Response1, Mystring1 Msg1 = "Teks kelebihan!!"
Style1 = vbOKOnly + vbInformation + vbDefaultButton2 Title1 = "Info"
Help1 = "DEMO.HLP" Ctxt1 = 1000
Response1 = MsgBox(Msg1, Style1, Title1, Help1, Ctxt1) If Response1 = vbOK Then
(13)
A-3 End If
End If
If ((c > 0 And c <= 25) And (d > 0 And d <= 25) And (e > 0 And e <= 6)) And z = 1 Then
MSComm1.Output = Text1.Text + "~%" + Text2.Text + "|%" + Text4.Text + "||" 'save frame
i = FreeFile
Open "D:\UDR.txt" For Output As #i
Print #i, Text1.Text + "~%" + Text2.Text + "|%" + Text4.Text + "||" Close #i
Text1.Text = "" Text2.Text = "" Text4.Text = "" z = 0
End If End Sub
MASUK ATCOMMAND Private Sub Command5_Click() Timer2.Enabled = True
MSComm1.Output = "+++" End Sub
SETTING LAMA
Private Sub Command7_Click() If Option1.Value Then
MSComm1.Output = "ATID" + Chr(13) Timer2.Enabled = False
End If
If Option2.Value Then
MSComm1.Output = "ATMY" + Chr(13) Timer2.Enabled = False
End If
If Option3.Value Then
MSComm1.Output = "ATDL" + Chr(13) Timer2.Enabled = False
End If
If Option4.Value Then
MSComm1.Output = "ATBD" + Chr(13) Timer2.Enabled = False
(14)
A-4 End If
End Sub
SETTING BARU
Private Sub Command6_Click() If Option1.Value Then
MSComm1.Output = "ATID" + Text8.Text + ",wr,cn" + Chr(13) End If
If Option2.Value Then
MSComm1.Output = "ATMY" + Text9.Text + ",wr,cn" + Chr(13) End If
If Option3.Value Then
MSComm1.Output = "ATDL" + Text7.Text + ",wr,cn" + Chr(13) End If
If Option4.Value Then
MSComm1.Output = "ATBD" + Text10.Text + ",wr,cn" + Chr(13) End If
End Sub TIMER 1
Private Sub Timer1_Timer() If Option1.Value Then
Text11.Text = MSComm1.Input Timer2.Enabled = False
End If
If Option2.Value Then
Text12.Text = MSComm1.Input Timer2.Enabled = False
End If
If Option3.Value Then
Text13.Text = MSComm1.Input Timer2.Enabled = False
End If
If Option4.Value Then
Text14.Text = MSComm1.Input Timer2.Enabled = False
End If End Sub TIMER 2
Private Sub Timer2_Timer() Text5.Text = MSComm1.Input End Sub
(15)
A-5 TULISAN TERAKHIR
Private Sub Command1_Click() i = FreeFile
Open "D:\UDR.txt" For Input As #i Do Until EOF(i)
Input #i, s 'tiap baris d tampung d variabel "s" s1 = s1 & s & IIf(EOF(i), "", vbCrLf)
Loop Close #i
Text3.Text = s1 End Sub
(16)
LAMPIRAN B
(17)
B-1
/***************************************************** This program was produced by the
CodeWizardAVR V1.25.3 Professional Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com
Project : Version :
Date : 10/8/2011
Author : Adrian Company : Maranatha Comments:
Chip type : ATmega32 Program type : Application Clock frequency : 11.059200 MHz Memory model : Small
External SRAM size : 0 Data Stack size : 512
*****************************************************/ #include <mega32.h>
#include <delay.h> #define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer #define RX_BUFFER_SIZE 63
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
(18)
B-2
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void) {
char status,data; status=UCSRA; data=UDR; k=rx_counter;
if (UCSRA.7==0) {
rx_buffer[rx_counter]=data;
if (++rx_counter == RX_BUFFER_SIZE) { rx_counter=0; rx_buffer_overflow=1; UCSRB.5=1; }
if (++rx_wr_index == RX_BUFFER_SIZE) { rx_wr_index=0; } z=1; } }
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer #define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void) {
char data;
while (rx_counter==0); data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0; #asm("cli")
--rx_counter; #asm("sei")
return data; }
#pragma used-
#endif
// Standard Input/Output functions #include <stdio.h>
// Declare your global variables here unsigned char karakter;
unsigned char spasi = 0x00;
unsigned char data[191];
unsigned char data1[191];
unsigned char data2[77];
unsigned char frame[63][5];
(19)
B-3 unsigned char hexa [95][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00}, //spasi
{0x04, 0x2a, 0x2a, 0x2a, 0x1e}, //a
{0x7e, 0x0a, 0x0a, 0x0a, 0x04}, //b
{0x1c, 0x22, 0x22, 0x22, 0x24}, //c
{0x04, 0x0a, 0x0a, 0x0a, 0x7e}, //d
{0x1c, 0x2a, 0x2a, 0x2a, 0x12}, //e
{0x10, 0x3e, 0x50, 0x40, 0x20}, //f
{0x10, 0x2a, 0x2a, 0x2a, 0x3c}, //g
{0x7e, 0x08, 0x08, 0x08, 0x06}, //h
{0x02, 0x0a, 0x5e, 0x02, 0x02}, //i
{0x04, 0x02, 0x02, 0x12, 0x5c}, //j
{0x7e, 0x10, 0x18, 0x24, 0x02}, //k
{0x42, 0x42, 0x7e, 0x02, 0x02}, //l
{0x1e, 0x20, 0x18, 0x20, 0x1e}, //m
{0x3e, 0x10, 0x20, 0x20, 0x1e}, //n
{0x1c, 0x22, 0x22, 0x22, 0x1c}, //o
{0x3f, 0x28, 0x28, 0x28, 0x10}, //p
{0x10, 0x28, 0x28, 0x28, 0x3f}, //q
{0x3e, 0x10, 0x20, 0x20, 0x10}, //r
{0x12, 0x2a, 0x2a, 0x2a, 0x24}, //s
{0x10, 0x7c, 0x12, 0x02, 0x04}, //t
{0x3c, 0x02, 0x02, 0x04, 0x3e}, //u
{0x38, 0x04, 0x02, 0x04, 0x38}, //v
{0x3c, 0x02, 0x0c, 0x02, 0x3c}, //w
{0x22, 0x14, 0x08, 0x14, 0x22}, //x
{0x30, 0x0a, 0x0a, 0x0a, 0x3c}, //y
{0x22, 0x26, 0x2a, 0x32, 0x22}, //z
{0x3e, 0x48, 0x48, 0x48, 0x3e}, //A
{0x7e, 0x52, 0x52, 0x5a, 0x24}, //B
{0x3c, 0x42, 0x42, 0x42, 0x24}, //C
{0x7e, 0x42, 0x42, 0x42, 0x3c}, //D
{0x7e, 0x52, 0x52, 0x52, 0x42}, //E
{0x7e, 0x50, 0x50, 0x50, 0x40}, //F
{0x3c, 0x42, 0x52, 0x52, 0x5c}, //G
{0x7e, 0x10, 0x10, 0x10, 0x7e}, //H
{0x42, 0x42, 0x7e, 0x42, 0x42}, //I
{0x04, 0x02, 0x02, 0x02, 0x7c}, //J
{0x7e, 0x10, 0x18, 0x24, 0x42}, //K
{0x7e, 0x02, 0x02, 0x02, 0x02}, //L
{0x7e, 0x40, 0x30, 0x40, 0x7e}, //M
{0x7e, 0x30, 0x18, 0x0c, 0x7e}, //N
{0x3c, 0x42, 0x42, 0x42, 0x3c}, //O
{0x7e, 0x48, 0x48, 0x48, 0x30}, //P
{0x3c, 0x62, 0x5a, 0x44, 0x3a}, //Q
{0x7e, 0x48, 0x48, 0x4c, 0x32}, //R
{0x32, 0x5a, 0x5a, 0x5a, 0x4c}, //S
{0x40, 0x40, 0x7e, 0x40, 0x40}, //T
{0x7c, 0x02, 0x02, 0x02, 0x7c}, //U
{0x78, 0x04, 0x02, 0x04, 0x78}, //V
{0x7c, 0x02, 0x0e, 0x02, 0x7c}, //W
{0x42, 0x24, 0x18, 0x24, 0x42}, //X
{0x60, 0x10, 0x0e, 0x10, 0x60}, //Y
(20)
B-4
{0x02, 0x22, 0x7e, 0x02, 0x02}, //1
{0x22, 0x46, 0x4a, 0x52, 0x22}, //2
{0x24, 0x42, 0x52, 0x52, 0x3c}, //3
{0x70, 0x10, 0x10, 0x10, 0x7e}, //4
{0x74, 0x52, 0x52, 0x52, 0x5c}, //5
{0x1c, 0x2a, 0x4a, 0x4a, 0x04}, //6
{0x42, 0x44, 0x48, 0x50, 0x60}, //7
{0x24, 0x5a, 0x5a, 0x5a, 0x24}, //8
{0x20, 0x52, 0x52, 0x54, 0x38}, //9
{0x3c, 0x72, 0x5a, 0x4e, 0x3c}, //0
{0x00, 0x78, 0xfd, 0x78, 0x00}, //!
{0x4e, 0xd9, 0x9f, 0xc1, 0x7e}, //@
{0x2c, 0x38, 0x6c, 0x38, 0x68}, //#
{0x24, 0x52, 0xff, 0x52, 0x4c}, //$
{0xc6, 0xcc, 0x18, 0x33, 0x63}, //%
{0x20, 0x40, 0x80, 0x40, 0x20}, //^
{0x76, 0x89, 0x95, 0x62, 0x05}, //&
{0x54, 0x38, 0xfe, 0x38, 0x54}, //*
{0x3c, 0x7e, 0xc3, 0x00, 0x00}, //(
{0x00, 0x00, 0xc3, 0x7e, 0x3c}, //)
{0xc0, 0xe0, 0x60, 0x10, 0x00}, //`
{0x18, 0x18, 0x18, 0x18, 0x18}, //-
{0x6c, 0x6c, 0x6c, 0x6c, 0x6c}, //=
{0x7f, 0x7f, 0x41, 0x00, 0x00}, //[
{0x00, 0x00, 0x41, 0x7f, 0x7f}, //]
{0x00, 0xed, 0xef, 0xee, 0x00}, //;
{0x05, 0x06, 0x00, 0x00, 0x00}, //,
{0x06, 0x06, 0x00, 0x00, 0x00}, //.
{0x03, 0x0e, 0x3c, 0x70, 0xc0}, ///
{0xe0, 0xe0, 0x00, 0xe0, 0xe0}, //"
{0x20, 0x40, 0x20, 0x10, 0x20}, //~
{0x01, 0x01, 0x01, 0x01, 0x01}, //_
{0x18, 0x18, 0x7e, 0x18, 0x18}, //+
{0x08, 0x76, 0x81, 0x81, 0x00}, //{
{0x00, 0x81, 0x81, 0x76, 0x08}, //}
{0x00, 0xe7, 0xe7, 0xe7, 0x00}, //:
{0x08, 0x14, 0x22, 0x41, 0x00}, //<
{0x00, 0x41, 0x22, 0x14, 0x08}, //>
{0x60, 0xc0, 0x8d, 0xd0, 0x60}, //?
{0x7f, 0x7f, 0x00, 0x00, 0x00}, //|
{0xc0, 0x70, 0x3c, 0x0e, 0x03}, //\ {0x00, 0x00, 0xe0, 0x00, 0x00} //'
};
unsigned char simbol [95] =
{' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F ','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V',
'W','X','Y','Z','1','2','3','4','5','6','7','8','9','0','!','@','# ','$','%','^','&','*','(',')','`',
(21)
'-B-5
','=','[',']',';',',','.','/','"','~','_','+','{','}',':','<','>',
'?','|','\\','\''
};
void konversi() {
for(d=0;d<93;d++) {
if (karakter==simbol[d]) {
y=d; } }
}
void framing() { for(j=0;j<5;j++) { frame[u][j]=hexa[y][j]; } }
void clear_frame() { for(j=0;j<5;j++) { frame[u][j]=0x00; } }
void data_isi1() {
a=40;
for(b=0; b<x; b++) {
for(c=0; c<6; c++) {
if (c==5) { data[a]=spasi; } else { data[a]=frame[b][c]; } a++; } } }
(22)
B-6 void data_isi2()
{
a=40;
for(b=x+2; b<w; b++) {
for(c=0; c<6; c++) {
if (c==5) { data1[a]=spasi; } else { data1[a]=frame[b][c]; } a++; } } }
void data_isi3() {
a=40;
for(b=w+2; b<q; b++) {
for(c=0; c<6; c++) {
if (c==5) { data2[a]=spasi; } else { data2[a]=frame[b][c]; } a++; } } }
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
(23)
B-7
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTA=0x00; DDRA=0xFF;
// Port B 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
PORTB=0x00; DDRB=0x00;
// Port C initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00; DDRC=0xC0;
// Port D 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
PORTD=0x00; DDRD=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On
// USART Transmitter: Off // USART Mode: Asynchronous // USART Baud rate: 9600
UCSRA=0x00; UCSRB=0x90; UCSRC=0x86; UBRRH=0x00; UBRRL=0x47;
// Analog Comparator initialization // Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80; SFIOR=0x00;
// Global enable interrupts
(24)
B-8 while (1)
{ // Place your code here
if(z==1)
{ for(i=0;i<k+1;i++) {
if(rx_buffer[i]=='~' && rx_buffer[i+1]=='%') {x=i;
}
if(rx_buffer[i]=='|' && rx_buffer[i+1]=='%') {w=i;
}
if(rx_buffer[i]=='|' && rx_buffer[i+1]=='|') {q=i; } for(u=0;u<x;u++) { karakter=rx_buffer[u]; konversi(); framing(); }; data_isi1(); for(u=0;u<62;u++) {clear_frame();} m=(w-x-2)*6+40; for(u=x+2;u<w;u++) { karakter=rx_buffer[u]; konversi(); framing(); }; data_isi2(); for(u=0;u<62;u++) {clear_frame();} for(u=w+2;u<q;u++) { karakter=rx_buffer[u]; konversi(); framing(); }; data_isi3(); for(u=0;u<62;u++) {clear_frame();} }; z=0; g=1; }
(25)
B-9 if(g==1) { PORTA=data[e+f]; e++; PORTC.7=1; delay_us(1500); PORTC.7=0; if(e==40) { PORTC.6=1; PORTC.6=0; e=0; f++; } p=6*(x)+40; if(f==p) { f=0;g=2; } } if(g==2) { PORTA=data1[m+l]; l++; PORTC.7=1; delay_us(1500); PORTC.7=0; if(l==40) { PORTC.6=1; PORTC.6=0; l=0; m--; } if(m==0) { m=(w-x-2)*6+40;g=3; } } if(g==3)
{ for(p=0;p<5;p++) { for(h=0;h<1000;h++) { PORTA=data2[r+37]; PORTC.7=1; delay_us(500); PORTC.7=0;
(26)
B-10
r++;
if(r==40) {
PORTC.6=1; PORTC.6=0; r=0;
}
}
delay_ms(200); }
g=1; }
}; }
(27)
LAMPIRAN C
(28)
C-1
(29)
C-2
(30)
C-3
(31)
C-4 FOTO ALAT
(32)
LAMPIRAN D
DATASHEET
(33)
D-1 MAX232
(34)
(35)
(36)
(37)
D-5 XBEE-PRO
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
(48)
(49)
1
Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Seiring dengan perkembangan zaman yang semakin pesat, kebutuhan akan efektivitas dan efisiensi sangat diutamakan dalam berbagi bidang. Hal tersebut telah mendorong manusia untuk semakin berkreasi dan berinovasi dalam bidang teknologi untuk menciptakan suatu alat yang efektif dalam mencapai tujuannya. Salah satu teknologi yang dapat meningkatkan efektivitas dan efisiensi adalah ditemukannya komunikasi nirkabel yang merupakan komunikasi yang menghubungkan transmitter dan receiver dengan media transmisi melalui gelombang radio. Komunikasi nirkabel dapat diterapkan pada berbagai aplikasi. Salah satunya adalah komunikasi nirkabel dapat digunakan untuk memberikan input pada scrolling text display.
Scrolling text display merupakan sebuah alat yang sering kali ditemui pada papan reklame atau papan iklan yang digunakan untuk memudahkan dalam memberikan suatu informasi berupa teks atau karakter yang bergerak. Pada umumnya scrolling text display didesain dengan menggunakan beberapa matriks led.
1.2 Identifikasi Masalah
Berdasarkan latar belakang di atas, masalah utama yang akan diangkat pada tugas akhir ini adalah dibutuhkannya scrolling text display untuk menampilkan tulisan bergerak berdasarkan input dari PC yang dikirimkan ke mikrokontroler secara wireless.
(50)
2
Universitas Kristen Maranatha 1.3 Perumusan Masalah
Permasalahan yang akan dibahas dalam tugas akhir ini meliputi :
1. Bagaimana merancang dan membuat Scrolling Text Display berbasis ATMEGA32 agar dapat menerima data dari PC secara wireless.
2. Bagaimana membuat program untuk mengirimkan tulisan dari PC ke mikrokontroler ATMEGA32.
1.4 Tujuan
1. Merancang dan merealisasikan Scrolling Text Display berbasis ATMEGA32 agar dapat menerima data dari PC secara wireless.
2. Merancang dan membuat program untuk mengirimkan tulisan dari PC ke mikrokontroler ATMEGA32.
1.5 Pembatasan Masalah
1. Matriks led yang digunakan adalah matriks led 8x8 sebanyak 5 buah. 2. Jenis karakter yang dapat ditampilkan adalah karakter standar yang
terdapat pada keyboard.
3. Komunikasi antara PC dan mikrokontroler melalui gelombang radio menggunakan modul RF Xbee-PRO XBP24-1083.
4. Variasi tampilan yang disediakan ada 3, yaitu bergeser ke kiri, ke kanan dan berkedip.
5. Jumlah karakter maksimal yang dapat ditampilkan sebanyak 25 karakter untuk tulisan ke kiri dan ke kanan, dan 6 karakter untuk tampilan berkedip. 6. Teks yang akan ditampilkan diinput melalui PC.
1.6 Spesifikasi Sistem
Spesifikasi sistem yang digunakan dalam tugas akhir ini antara lain : 1. Software CodeVisionAVR.
(51)
3
Universitas Kristen Maranatha 3. PC (Personal Computer) digunakan sebagai sarana penunjang software
yang digunakan.
4. Mikrokontroler ATMEGA32.
5. Xbee-PRO XBP24-1083 (transmitter dan receiver). 6. IC MAX 232.
7. Matriks led.
8. Decade counter 4017. 9. ULN 2803.
10.Transistor 11.IC AND 7408.
1.7 Sistematika Penulisan
Sistematika penulisan laporan ini disusun menjadi lima bab, yaitu sebagai berikut:
BAB I PENDAHULUAN
Bab ini membahas tentang latar belakang, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, blok diagram dan sistematika penulisan.
BAB II DASAR TEORI
Bab ini membahas tentang dasar – dasar teori yang digunakan untuk merancang dan merealisasikan scrolling text display berbasis ATMEGA32 secara wireless.
BAB III PERANCANGAN DAN REALISASI
Bab ini membahas tentang rangkaian skematik hardware serta algoritma dan diagram alir sistem.
BAB IV DATA PENGAMATAN
Bab ini membahas tentang analisis dan pengujian keluaran – keluaran dari scrolling text display berbasis ATMEGA32 secara wireless berdasarkan jarak dan setting address.
(52)
4
Universitas Kristen Maranatha BAB V PENUTUP
Bab ini membahas tentang kesimpulan yang diperoleh setelah menyelesaikan tugas akhir beserta masukkan dan saran yang dapat digunakan untuk dilakukannya perbaikan.
(53)
58
Universitas Kristen Maranatha
BAB V
PENUTUP
Dalam Tugas Akhir ini dapat diambil beberapa kesimpulan dari hasil perancangan dan pengujian yang dilakukan, serta beberapa saran bagi pihak lain yang berkenan dengan pembuatan Tugas Akhir “Perancangan dan Realisasi Scrolling Text Display Berdasarkan Input dari PC secara Nirkabel”.
5.1 Kesimpulan
1. Tampilan pada scrolling text display dapat menerima data dengan baik sesuai dengan input tulisan dari PC.
2. Komunikasi Xbee-PRO dapat berjalan dengan baik. Ketika penerima berada di dalam ruangan, data masih dapat diterima hingga jarak 15 meter tanpa banyak halangan. Ketika berada di luar ruangan, data masih dapat diterima pada jarak 250 meter.
5.2 Saran
1. Fitur scrolling text display dapat dikembangkan dengan menambah memori eksternal agar dapat digunakan untuk menambah animasi scrolling text dan jumlah kapasitas karakter.
2. Untuk memudahkan dalam menginput data, input data dapat dilakukan melalui remote atau handphone.
(54)
59
Universitas Kristen Maranatha
DAFTAR PUSTAKA
1. Andrianto, Heri. 2008. ”Pemrograman Mikrokontroler AVR ATMEGA16 Menggunakan Bahasa C (CodeVision AVR)”, Bandung: Informatika.
2. Darmawan, Aan. 2010, “Visual Basic 6 Referensi Cepat”, Bandung: Universitas Kristen Maranatha.
3. Darmawan, Aan. 2010, “Introduction to Interfacing”, Bandung: Universitas Kristen Maranatha.
4. Liong Hui, Tjia. 2010, “Diktat Kuliah Dasar Telekomunikasi”, Bandung: Universitas Kristen Maranatha.
5.
http://elib.unikom.ac.id/files/disk1/452/jbptunikompp-gdl-edwarderna-22568-2-unikom_e-i.pdf Akses : 4 Agustus 2011
6.
http://elib.unikom.ac.id/files/disk1/66/jbptunikompp-gdl-s1-2006-rnoorbaran-3278-bab-ii.doc
Akses : 4 Agustus 2011
7. http://id.wikipedia.org/wiki/ZigBee
Akses: 23 September 2011
8. http://www.picaxe.com/docs/XBE001.pdf
Akses: 23 September 2011
9. http://logicprobe10.wordpress.com/2011/07/31/teknologi-zigbee/
Akses: 23 September 2011
10.http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf
Akses 29 September 2011
11.http://putravb.blogspot.com/2010/06/membuka-dan-menyimpan-file-teks.html
(1)
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Seiring dengan perkembangan zaman yang semakin pesat, kebutuhan akan efektivitas dan efisiensi sangat diutamakan dalam berbagi bidang. Hal tersebut telah mendorong manusia untuk semakin berkreasi dan berinovasi dalam bidang teknologi untuk menciptakan suatu alat yang efektif dalam mencapai tujuannya. Salah satu teknologi yang dapat meningkatkan efektivitas dan efisiensi adalah ditemukannya komunikasi nirkabel yang merupakan komunikasi yang menghubungkan transmitter dan receiver dengan media transmisi melalui gelombang radio. Komunikasi nirkabel dapat diterapkan pada berbagai aplikasi. Salah satunya adalah komunikasi nirkabel dapat digunakan untuk memberikan
input pada scrolling text display.
Scrolling text display merupakan sebuah alat yang sering kali ditemui pada
papan reklame atau papan iklan yang digunakan untuk memudahkan dalam memberikan suatu informasi berupa teks atau karakter yang bergerak. Pada umumnya scrolling text display didesain dengan menggunakan beberapa matriks led.
1.2 Identifikasi Masalah
Berdasarkan latar belakang di atas, masalah utama yang akan diangkat pada tugas akhir ini adalah dibutuhkannya scrolling text display untuk menampilkan tulisan bergerak berdasarkan input dari PC yang dikirimkan ke mikrokontroler secara wireless.
(2)
1.3 Perumusan Masalah
Permasalahan yang akan dibahas dalam tugas akhir ini meliputi :
1. Bagaimana merancang dan membuat Scrolling Text Display berbasis ATMEGA32 agar dapat menerima data dari PC secara wireless.
2. Bagaimana membuat program untuk mengirimkan tulisan dari PC ke mikrokontroler ATMEGA32.
1.4 Tujuan
1. Merancang dan merealisasikan Scrolling Text Display berbasis ATMEGA32 agar dapat menerima data dari PC secara wireless.
2. Merancang dan membuat program untuk mengirimkan tulisan dari PC ke mikrokontroler ATMEGA32.
1.5 Pembatasan Masalah
1. Matriks led yang digunakan adalah matriks led 8x8 sebanyak 5 buah. 2. Jenis karakter yang dapat ditampilkan adalah karakter standar yang
terdapat pada keyboard.
3. Komunikasi antara PC dan mikrokontroler melalui gelombang radio menggunakan modul RF Xbee-PRO XBP24-1083.
4. Variasi tampilan yang disediakan ada 3, yaitu bergeser ke kiri, ke kanan dan berkedip.
5. Jumlah karakter maksimal yang dapat ditampilkan sebanyak 25 karakter untuk tulisan ke kiri dan ke kanan, dan 6 karakter untuk tampilan berkedip. 6. Teks yang akan ditampilkan diinput melalui PC.
1.6 Spesifikasi Sistem
Spesifikasi sistem yang digunakan dalam tugas akhir ini antara lain : 1. Software CodeVisionAVR.
(3)
3. PC (Personal Computer) digunakan sebagai sarana penunjang software yang digunakan.
4. Mikrokontroler ATMEGA32.
5. Xbee-PRO XBP24-1083 (transmitter dan receiver). 6. IC MAX 232.
7. Matriks led.
8. Decade counter 4017.
9. ULN 2803. 10. Transistor 11. IC AND 7408.
1.7 Sistematika Penulisan
Sistematika penulisan laporan ini disusun menjadi lima bab, yaitu sebagai berikut:
BAB I PENDAHULUAN
Bab ini membahas tentang latar belakang, perumusan masalah, tujuan, pembatasan masalah, spesifikasi alat, blok diagram dan sistematika penulisan.
BAB II DASAR TEORI
Bab ini membahas tentang dasar – dasar teori yang digunakan untuk merancang dan merealisasikan scrolling text display berbasis ATMEGA32 secara wireless.
BAB III PERANCANGAN DAN REALISASI
Bab ini membahas tentang rangkaian skematik hardware serta algoritma dan diagram alir sistem.
BAB IV DATA PENGAMATAN
Bab ini membahas tentang analisis dan pengujian keluaran – keluaran dari scrolling text display berbasis ATMEGA32 secara wireless berdasarkan jarak dan setting address.
(4)
BAB V PENUTUP
Bab ini membahas tentang kesimpulan yang diperoleh setelah menyelesaikan tugas akhir beserta masukkan dan saran yang dapat digunakan untuk dilakukannya perbaikan.
(5)
BAB V
PENUTUP
Dalam Tugas Akhir ini dapat diambil beberapa kesimpulan dari hasil perancangan dan pengujian yang dilakukan, serta beberapa saran bagi pihak lain yang berkenan dengan pembuatan Tugas Akhir “Perancangan dan Realisasi
Scrolling Text Display Berdasarkan Input dari PC secara Nirkabel”.
5.1 Kesimpulan
1. Tampilan pada scrolling text display dapat menerima data dengan baik sesuai dengan input tulisan dari PC.
2. Komunikasi Xbee-PRO dapat berjalan dengan baik. Ketika penerima berada di dalam ruangan, data masih dapat diterima hingga jarak 15 meter tanpa banyak halangan. Ketika berada di luar ruangan, data masih dapat diterima pada jarak 250 meter.
5.2 Saran
1. Fitur scrolling text display dapat dikembangkan dengan menambah memori eksternal agar dapat digunakan untuk menambah animasi
scrolling text dan jumlah kapasitas karakter.
2. Untuk memudahkan dalam menginput data, input data dapat dilakukan melalui remote atau handphone.
(6)
DAFTAR PUSTAKA
1. Andrianto, Heri. 2008. ”Pemrograman Mikrokontroler AVR ATMEGA16
Menggunakan Bahasa C (CodeVision AVR)”, Bandung: Informatika.
2. Darmawan, Aan. 2010, “Visual Basic 6 Referensi Cepat”, Bandung: Universitas Kristen Maranatha.
3. Darmawan, Aan. 2010, “Introduction to Interfacing”, Bandung: Universitas Kristen Maranatha.
4. Liong Hui, Tjia. 2010, “Diktat Kuliah Dasar Telekomunikasi”, Bandung: Universitas Kristen Maranatha.
5.
http://elib.unikom.ac.id/files/disk1/452/jbptunikompp-gdl-edwarderna-22568-2-unikom_e-i.pdf Akses : 4 Agustus 2011
6.
http://elib.unikom.ac.id/files/disk1/66/jbptunikompp-gdl-s1-2006-rnoorbaran-3278-bab-ii.doc
Akses : 4 Agustus 2011
7. http://id.wikipedia.org/wiki/ZigBee
Akses: 23 September 2011
8. http://www.picaxe.com/docs/XBE001.pdf
Akses: 23 September 2011
9. http://logicprobe10.wordpress.com/2011/07/31/teknologi-zigbee/
Akses: 23 September 2011
10. http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf
Akses 29 September 2011
11. http://putravb.blogspot.com/2010/06/membuka-dan-menyimpan-file-teks.html