PEMBACA BARCODE CODE 39 BERBASIS
MIKROKONTROLER AT89S51
TUGAS AKHIR
Diajukan Sebagai Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Jurusan Teknik Elektro
Disusun oleh :
TONNY PUJIANTO NIM : 015114037
PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2006
THE FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
to Obtain the Sarjana Teknik Degree
in Electrical Engineering
Arranged by :
TONNY PUJIANTO
STUDENT NUMBER: 015114037
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINERING DEPARTMENT
ENGINEERING FACULTY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2006
HALAMAN PERNYATAAN KEASLIAN HASIL KARYA
Dengan ini saya menyatakan bahwa dalam Tugas Akhir ini tidak terdapat karya
yang pernah diajukan untuk memperoleh gelar kesarjanaan di suatu Perguruan
Tinggi, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat
yang pernah ditulis atau diterbitkan oleh orang lain, kecuali yang secara tertulis
diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Yogyakarta, November 2006
Penulis
Tonny Pujianto
MOTTO
1. Hidup adalah perjuangan
2. Berani hidup jangan takut mati, Takut mati jangan hidup, Takut hidup
mati saja. (Trimurti “Imam Zarkasy, Zainudin Fanani, Ahmad Sahal)
3. ALLAH tidak akan merubah nasib suatu kaum, kecuali kaum itu sendiri
yang merubahnya. (QS. Arra’du, ayat 11)
PERSEMBAHAN
Ku persembahkan tulisan ini untuk kedua orangtuaku tercinta, Kakakku satu –
satunya dan orang yang sangat aku kasihi…
INTISARI
Barcode merupakan salah satu alat bantu identifikasi yang sering tertera dalam berbagai produk, kartu identitas ataupun jenis barang lainnya guna mempermudah proses identifikasi. Walaupun banyak jenis alat bantu yang lain
seperti magnetic band dan smart card, tapi barcode tetap dapat bertahan karena
memiliki keunggulan tersendiri yang tidak dijumpai pada alat bantu yang lain.
Alat pembaca barcode atau barcode reader dapat dibuat sendiri dengan
rangkaian yang relatif sederhana dan harga yang relatif murah. Dengan tampilan pada LCD dan pengolahan data dengan Mikrokontroler AT89S51, karakter yang
ada pada barcode dapat dikonversikan dan ditampilkan sehingga orang dapat
membacanya. Alat pembaca barcode ini dirancang untuk dapat membaca barcode
kode 39 dan menampilkan karakternya pada LCD.
Tugas akhir alat pembaca barcode (barcode reader) telah berhasil dibuat
dengan kemampuan pembacaan hingga 11 karakter pada 1 kartu (bekas sim card
perdana telepon seluler) dengan tingkat kesalahan rata - rata 10 %.
smart card, but the barcode is still exist with its superiority.
The barcode reader can be made with a simple schematic and inexpensive price. With the LCD as the display and AT89S51 microcontroller as the data processing, the character of the barcode can be converted and displayed so that people can read. This barcode reader have been made for the barcode code 39 and display the character on the LCD.
Barcode reader as the final project have been tested and can read up to 11 character on the card (mobile phone sim card) with 10 % average error.
KATA PENGANTAR
Bismillahirrohmanirrohim.
Dengan menyebut nama ALLAH yang maha pengasih dan penyayang,
penulis mengucapkan puji syukur atas berkat, rahmat dan ridho-Nya, sehingga
alat pembaca barcode kode 39 ini akhirnya dapat diselesaikan dengan hasil yang
memuaskan.
Dengan selesainya tugas akhir ini yang merupakan salah satu syarat untuk
meraih gelar sarjana pada jurusan Teknik Elektro, Fakultas Teknik, Universitas
Sanata Dharma, Yogyakarta, penulis mengucapkan terima kasih kepada:
1. Kedua orang tuaku tercinta, atas segalanya yang telah diberikan dan
tak akan pernah dapat ternilai harganya.
2. Bapak Ir. Iswanjono, M.T selaku pembimbing, atas segala pemikiran
dan bimbingannya dari awal hingga akhir pembuatan tugas ahir ini.
3. Suchi Desamaryta yang selalu memberi semangat dan dorongan serta
kasih dan sayang hingga penulis dapat terus berjuang dan berjuang.
“be an Angel”.
4. Kakakku yang tercinta, mas Eko “we will together in this “war” for
the bright future”
5. Temen – temen kontrakan yang badung – badung : clause dominica,
Teguh, Ari, Saliem dan CB ‘Ciberiouse’, terimakasih atas semua
bantuan dan semangatnya. “tetep semangat”
Tiesta, Nanda, Yudie “Apoet”, “ I miss you all, so much”, Thuesti,
Ikoq, N(“,)p3ks, MeeCha, Iin, Rain-nee, Woelan, Nur “din”, Ice-tea
dan semuanya “keep your spirit for the holly fighter”
8. Seluruh dosen Fakultas Teknik yang telah membagikan ilmunya
selama penulis berada di Universitas Sanata Dharma
9. Bapak A. Bayu Primawan, S.T.,M.Eng selaku Ketua Jurusan Teknik
Elektro, Universitas Sanata Dharma, Yogyakarta.
10.Romo Ir. Greg. Heliarko SJ.,SS.,BST.,MA.,M.Sc selaku Dekan
Fakultas Teknik, Universitas Sanata Dharma, Yogyakarta.
11.Dan semua pihak yang tidak dapat penulis disebutkan, makasih
banyak, ALLAH yang membalas segalanya.
Penulis menyadari bahwa dalam pembuatan dan penulisan tugas akhir ini
masih banyak kelemahan dan kekurangan. Oleh karena itu masukan dari
semua pihak sangat penulis harapkan.
Semoga tugas akhir ini dapat bermanfaat bagi kita semua, ALLAH
memberkati. Amiin.
Yogyakarta, November 2006
Penulis
DAFTAR ISI
HALAMAN JUDUL... i
HALAMAN PERSETUJUAN PEMBIMBING... iii
HALAMAN PENGESAHAN... iv
PERNYATAAN KEASLIAN KARYA... v
MOTO DAN PERSEMBAHAN... vi
INTISARI... vii
ABSTRACT... viii
KATA PENGANTAR... ix
DAFTAR ISI... xi
DAFTAR TABEL... xv
DAFTAR GAMBAR... xvi
BAB I PENDAHULUAN... 1
1.1 Judul ... 1
1.2 Latar Belakang Masalah ... 1
1.3 Perumusan Masalah ... 2
1.4 Batasan Masalah ... 2
1.5 Tujuan ... 3
1.6 Manfaat ... 3
1.7 Metodologi penelitian ... 4
1.8 Sistematika Penulisan ... 4
2.1.2 Barcode dua dimensi... 8
2.1.3 Kode pada Barcode Kode 39 ... 9
2.1.4 Cara Pembacan barcode... 11
2.2 Sensor barcode Reader... 11
2.2.1 Rangkaian Photo Diode... 11
2.2.2 Rangkaian LED Super Bright... 13
2.3 Pengondisi Sinyal... 15
2.4 Motor Stepper... 16
2.5 Penggerak Motor Stepper... 18
2.6 Penampil LCD 2 x 6 karakter ... 19
2.7 Mikrokontroler AT89S51 ... 22
2.8 Osilator Mikrokontroler ... 25
BAB III PERANCANGAN DAN IMPLEMENTASI... 26
3.1 Diagram Blok Pembaca Barcode (Barcode reader) ... 26
3.2 Kartu barcode... 26
3.3 Sensor Barcode Reader... 27
3.3.1 LED super bright... 27
3.3.2 Frekuensi Pemodulasi ... 28
3.3.3 Photo diode... 28
3.4 Pengondisi Sinyal... 30
3.5 Motor Stepper... 31
3.6 Penggerak Motor Stepper... 33
3.7 Penampil LCD ... 35
3.8 Mikrokontroler AT89S51 ... 36
3.8.1 Osilator Mikrokontroler AT89S51 ... 37
3.8.2 Data Masukan Mikrokontroler AT89S51 ... 38
3.8.3 Pensaklaran (Switching) oleh Mikrokontroler ... 39
3.8.4 Diagram Alir dan Algoritma Keseluruhan Sistem Kerja ... 39
3.8.5 Diagram Alir dan Algoritma Subroutine Pengambilan Data ... 42
3.8.6 Diagram Alir dan Algoritma Subroutine Konversi Data ... 45
BAB IV HASIL DAN PEMBAHASAN ... 47
4.1 Pengamatan dari Alat ... 48
4.1.1 Kartu Barcode... 49
4.1.2 Ketelitian Barcode Reader... 49
4.1.3 Proses Pembacaan Barcode... 50
4.2 Data Pengamatan ... 51
4.2.1 Data Pengamatan Perangkat Keras ... 51
4.2.2 Data Pengamatan Pembacaan Barcode... 52
DAFTAR PUSTAKA... 59
LAMPIRAN
AFTAR TABEL
1. Tabel 2.1 Karakter ASCII barcode kode 39 ... 9
2. Tabel 2.2 Tampilan LCD ... 21
3. Tabel 2.3 Fungsi pin pada port 3 ... 24
4. Tabel 3.1 Penggunaan port pada Mikrokontroler ... 37
2. Gambar 2.1 Barcode jenis code 39 ... 6
3. Gambar 2.2 barcode jenis code 128... 7
4. Gambar 2.3 barcode jenis interleaved 2 of 5 ... 7
5. Gambar 2.4 barcode jenis UPC ... 8
6. Gambar 2.5 barcode jenis PDF417... 9
7. Gambar 2.6 Rangkaian photo diode padan sensor barcode reader... 12
8. Gambar 2.7 Rangkaian timer 555 astable ... 14
9. Gambar 2.8 Rangkaian dara LED super bright... 14
10. Gambar 2.9 Op-amp sebagai pembanding... 15
11. Gambar 2.10 Pergerakan motor Stepper “full step”... 16
12. Gambar 2.11 Pergerakan motor Stepper “half step”... 17
13. Gambar 2.12 Gelombang dasar pergerakan pulsa motor Stepper... 19
14. Gambar 2.13 Display LCD 2 x 16 karakter ... 20
15. Gambar 2.14 Konfigurasi pin AT89S51 ... 23
16. Gambar 3.1 Diagram blok barcode reader... 26
17. Gambar 3.2 Kartu yang memiliki barcode... 27
18. Gambar 3.3 Rangkaian photo diode dan transistor ... 28
19. Gambar 3.4 Rangkaian pembagi tegangan ... 31
20. Gambar 3.5 Rangkaian pembanding pada op-amp ... 31
21. Gambar 3.6 Rangkaian penggerak motor Stepper... 34
22. Gambar 3.7 Diagram blok penggerak motor Stepper... 34
23. Gambar 3.8 Tampilan pada LCD 2 x 16 karakter... 36
24. Gambar 3.9 Rangkaian LCD pada Mikrokontroler ... 36
25. Gambar 3.10 Rangkaian osilator Mikrokontroler AT89S51 ... 37
26. Gambar 3.11 Rangkaian masukan ke AT89S51 ... 37
27. Gambar 3.12 Rangkaian pensaklaran oleh Mikrokontroler ... 39
28. Gambar 3.13 Diagram alir sistem kerja barcode reader... 41
29. Gambar 3.14 Diagram alir proses pengambilan data Barcode... 43
30. Gambar 3.15 Diagram alir proses konversi data menjadi karakter ASCII ... 46
31. Gambar 4.1 Bentuk fisik alat dilihat dari atas tanpa penutup ... 47
32. Gambar 4.2 Barcode reader PromtScanTM... 48
33. Gambar 4.3 Barcode yang ditempel pada bekas kartu perdana (sim card) telepon seluler ... 48
34. Gambar 4.4 Spesifikasi dan logika yang diberikan oleh barcode... 49
35. Gambar 4.9 Peletakan sensor pembaca barcode... 50
36. Gambar 4.10 Tampilan karakter salah pada LCD... 52
37. Gambar 4.5 Barcode dengan karakter *15114037*... 56
38. Gambar 4.6 Barcode dengan karakter *05422001*... 56
39. Gambar 4.7 Barcode dengan karakter *69009009*... 56
40. Gambar 4.8 Barcode dengan karakter *11121983*... 57
1.1. Judul
Pembaca barcode kode 39 berbasis mikrokontroler AT89S51.
1.2. Latar Belakang Masalah
Di awal perkembangannya, penggunaan barcode dilakukan untuk
membantu proses pemeriksaan barang-barang secara otomatis pada supermarket.
Tetapi saat ini barcode sudah banyak digunakan dalam berbagai aplikasi seperti
pada kartu identitas, kartu kredit dan untuk pemeriksaan secara otomatis pada
perpustakaan.
Barcode digambarkan dalam bentuk baris hitam tebal dan tipis yang
disusun berderet sejajar horisontal. Untuk membantu pembacaan secara manual,
dicantumkan juga angka-angka dibawah barcode tersebut. Angka-angka tersebut
tidak mendasari pola barcode yang tercantum. Ukuran dari barcode tersebut dapat
diperbesar maupun diperkecil dari ukuran nominalnya tanpa tergantung dari mesin
yang membaca[1].
Walaupun teknologi semakin berkembang dengan ditemukannya media
magnetic, rfid, electronics tags, serial EEPROM (seperti pada smart card),
barcode terus bertahan dengan kelebihan – kelebihan yang dimilikinya. Media
pembacaan barcode juga tersedia begitu banyak di pasaran dengan harga yang
relatif murah, mulai dari yang berbentuk pena (wand), slot, scanner, hingga CCD
atau bahkan dapat dibuat sendiri[2].
2
Berdasar alasan di atas, penulis merancang dan membuat alat pembaca
barcode (Barcode reader) dengan keluaran pada LCD. Alat ini, dirancang untuk
dapat membaca barcode kode 39 dan menampilkan kode – kode barcode pada
LCD.
1.3. Perumusan Masalah
Dalam perancangan ini, barcode dibuat sendiri dan di tempelkan pada
kartu perdana simcard bekas. Sedangkan untuk pembaca barcode (barcode
reader) diperlukan beberapa hal, yaitu :
1. Penempatan sensor dan sensifitas sensor sehingga sensor dapat
membaca barcode dan meminimalisasi kesalahan sehingga data yang
didapat lebih aktual
2. Proses pengolahan data oleh pengondisi sinyal dan mikrokontroler
(AT89S51) sehingga data tersebut dapat ditampilkan menggunakan
LCD.
1.4. Batasan Masalah
Batasan masalah pada perancangan ini adalah :
1. Barcode kode 39
Barcode kode 39 berupa garis hitam dan putih yang memiliki
spesifikasi :
Tinggi barcode : 8 mm
Ukuran 1 (satu) bar dan space lebar : 1.446 mm
Gambar 1.1. Satu karakter dan ukuran barcode
Jumlah bar dan space untuk 1 (satu) karakter : 9
Jarak antar karakter : 0.578 mm
2. Hanya menggunakan digit biner data (8 digit biner) dari 9 digit biner
barcode.
3. Barcode (standar) yang dibuat sendiri menggunakan Corel Draw
dengan font3 of 9.
1.5. Tujuan
Perancangan ini bertujuan untuk dapat membaca barcode kode 39 dan
ditampilkan pada LCD agar dapat dibaca oleh manusia.
1.6. Manfaat
Manfaat dari perancangan dari alat ini antara lain:
a. Dapat mengetahui isi (kode) barcode code 39 dalam bentuk numerik
4
b. Dapat digunakan sebagai dasar untuk membuat perancangan yang
lebih besar (daftar hadir, tiket, pintu masuk dan lain - lain).
c. Menambah pengetahuan tentang teknologi barcode
1.7. Metodologi Penelitian
Pada perancangan alat ini, penulis menggunakan metode penelitian
sebagai berikut :
1. Perumusan masalah
2. Pengumpulan faktor – faktor pendukung
3. Perancangan untuk menyelesaikan masalah
4. Pengimplementasian dari rancangan.
5. Pengambilan data dan percobaan – percobaan
6. Menganalisa dan membuat laporan
1.8. Sistematika Penulisan
Penulisan tugas akhir ini ditulis dengan sistematika sebagai berikut:
BAB I Pendahuluan
Bab ini berisi judul, latar belakang masalah yang mendasari pemilihan
judul tugas akhir, perumusan masalah, batasan masalah, tujuan dan
manfaat penelitian, metode penelitian, hipotesa dan sistematika
BAB II Dasar teori
Bab ini berisi dasar teori rangkaian yang dibentuk dari
kompenen-komponen yang dipakai dalam perancangan barcode reader, antara lain:
rangkaian sensor barcode (rangkaian LED infra merah danrangkaian
photo diode), LDC 2×16 karakter, rangkaian penggerak motor stepper,
mikrokontroler AT89S51, spesifikasi dan cara pembacaan barcode.
BAB III Perancangan alat
Bab ini berisi tentang perancangan nilai-nilai komponen serta cara
menghubungkan dan menggunakan rangkaian-rangkaian seperti yang
disebutkan pada BAB II untuk membentuk suatu sistem rangkaian
elektronika yang mengendalikan barcode reader. BAB ini juga memuat
algoritma dan diagram alir (flowchart) dalam membuat program yang
akan dijalankan pada mikrokontroler AT89S51.
BAB IV Hasil dan pembahasan
Bab ini berisi tentang hasil dan pembahasan terhadap hasil akhir dan
pengujian alat.
BAB II
DASAR TEORI
2.1. Barcode
Barcode adalah kode berupa beberapa garis atau titik hitam dan putih.
Barcode memiliki 2 bentuk, yaitu :
1. barcode 1 dimensi
2. barcode 2 dimensi
2.1.1. Barcode Satu Dimensi
Barcode satu dimensi biasanya dinamakan linear bar codes (kode
berbentuk baris). Contoh barcode satu dimensi antara lain [1]:
• Kode 39 (code 3 of 9)
Adalah sebuah barcode alphanumerik (full ASCII) yang
memiliki panjang baris yang bervariasi, seperti yang ditunjukkan
pada gambar 2.1. Aplikasi barcode jenis kode 39 adalah untuk
inventory, asset tracking dan digunakan pada tanda pengenal
identitas.
Gambar 2.1. Barcode jenis kode 39
• Kode 128
Adalah suatu barcode alphanumerik (full ASCII) yang memiliki
kerapatan (density) yang sangat tinggi dan panjang baris yang
bervariasi, seperti terlihat pada gambar 2.2. Barcode kode 128 ideal
untuk aplikasi seperti shipping and warehouse management
(pangaturan maskapai pelayaran dan pengelolaan gudang).
Gambar 2.2. Barcode jenis kode 128
• Interleaved 2 of 5
Adalah sebuah barcode yang berbentuk numerik dan memiliki
panjang baris yang bervariasi, seperti terlihat pada gambar 2.3.
Barcode interleaved 2 of 5 dapat dipergunakan untuk aplikasi industri
dan laboratorium.
8
• UPC (Universal Product Code)
Adalah sebuah barcode yang berbentuk numerik dan memiliki
panjang baris yang tetap (fixed), seperti terlihat pada gambar 2.4.
UPC digunakan untuk pelabelan pada produk-produk kecil/eceran
(retail product labeling). Simbol ini dibuat untuk kemudahan
pemeriksaan keaslian suatu produk. Bilangan-bilangan UPC harus
diregistrasikan atau terdaftar di Uniform Code Council.
Gambar 2.4. Barcode jenis UPC
2.1.2. Barcode Dua Dimensi
Adalah barcode yang dikembangkan lebih dari sepuluh tahun lalu,
tetapi baru sekarang ini mulai semakin populer. Barcode dua dimensi ini
memiliki beberapa keuntungan dibandingkan linear bar codes (barcode satu
dimensi). Dengan barcode dua dimensi, informasi atau data yang besar dapat
disimpan di dalam suatu ruang (space) yang lebih kecil. Contoh barcode dua
dimensi adalah “symbology PDF417” seperti terlihat pada gambar 2.5.
Barcode jenis ini dapat menyimpan lebih dari 2000 karakter di dalam sebuah
Gambar 2.5. Barcode jenis PDF417
2.1.3. Kode pada Barcode Kode 39
Satu karakter pada barcode kode 39 memiliki 9 elemen yaitu 5 bar
(garis vertikal hitam) dan 4 spasi (garis vertikal putih) yang disusun secara
bergantian. Tiga dari sembilan elemen tersebut memilki ketebalan yang lebih
dari lainnya. Oleh karena itu, kode ini biasa disebut juga code 3 of 9 atau
juga sering disebut kode 39. Tiga elemen yang lebih tebal tersebut terdiri dari
2 bar dan 1 spasi, elemen yang lebar mewakili digit biner 1 dan elemen yang
sempit mewakili digit biner 0 [2].
Tabel 2.1. Karakter ASCII barcode kode 39 [2].
Digit biner Karakter
ASCII Barcode B
(C) S
(D0)
B
(D1)
S
(D2)
B
(D3)
S
(D4)
B
(D5)
S
(D6)
B
(D7)
0
0
0 0 0 1 1 0 1 0 01
1
1 0 0 1 0 0 0 0 12
2
0 0 1 1 0 0 0 0 13
3
1 0 1 1 0 0 0 0 04
4
0 0 0 1 1 0 0 0 15
5
1 0 0 1 1 0 0 0 06
6
0 0 1 1 1 0 0 0 07
7
0 0 0 1 0 0 1 0 18
8
1 0 0 1 0 0 1 0 09
9
0 0 1 1 0 0 1 0 010
Tabel 2.1. (Lanjutan) Karakter ASCII barcode kode 39 [2] Digit biner
Karakter
ASCII Barcode B
(C) S (D0) B (D1) S (D2) B (D3) S (D4) B (D5) S (D6) B (D7)
B
B
0 0 1 0 0 1 0 0 1C
C
1 0 1 0 0 1 0 0 0D
D
0 0 0 0 1 1 0 0 1E
E
1 0 0 0 1 1 0 0 0F
F
0 0 1 0 1 1 0 0 0G
G
0 0 0 0 0 1 1 0 1H
h
1 0 0 0 0 1 1 0 0I
i
0 0 1 0 0 1 1 0 0J
J
0 0 0 0 1 1 1 0 0K
K
1 0 0 0 0 0 0 1 1L
L
0 0 1 0 0 0 0 1 1M
M
1 0 1 0 0 0 0 1 0N
N
0 0 0 0 1 0 0 1 1O
O
1 0 0 0 1 0 0 1 0P
P
0 0 1 0 1 0 0 1 0Q
Q
0 0 0 0 0 0 1 1 1R
R
1 0 0 0 0 0 1 1 0S
S
0 0 1 0 0 0 1 1 0T
T
0 0 0 0 1 0 1 1 0U
U
1 1 0 0 0 0 0 0 1V
V
0 1 1 0 0 0 0 0 1W
W
1 1 1 0 0 0 0 0 0X
X
0 1 0 0 1 0 0 0 1Y
Y
1 1 0 0 1 0 0 0 0Z
Z
0 1 1 0 1 0 0 0 0-
-
0 1 0 0 0 0 1 0 1.
.
1 1 0 0 0 0 1 0 0SPACE 0 1 1 0 0 0 1 0 0
*
*
0 1 0 0 1 0 1 0 0$
$
0 1 0 1 0 1 0 0 0/
/
0 1 0 1 0 0 0 1 0+
+
0 1 0 0 0 1 0 1 0%
%
0 0 0 1 0 1 0 1 0Jumlah digit biner pada barcode kode 39 adalah 9 digit. Barcode
kode 39 tidak memiliki check digit tersendiri, tapi mampu melakukan
memperbaiki kesalahan yang ditemukan [5]. Pada perancangan yang penulis
lakukan, proses pengecekan ini tidak dilakukan, sehingga digit biner yang
diambil hanya digit data (D0 – D7)
2.1.4. Cara Pembacaan Barcode
Pembacaan barcode jenis code 39 (berupa garis) yang penulis pakai
menggunakan sistem pemantulan cahaya (sistem pena). Sebagai sumber
cahaya (pena) adalah LED super bright dan sebagai penerima cahaya adalah
photo diode yang dihubungkan ke basis transistor. LED super bright
memancarkan cahaya sehingga mengenai permukaan barcode. Bila
permukaan yang terkena cahaya adalah garis putih, maka cahaya akan
dipantulkan ke photo diode sehingga photo diode aktif dan transistor juga
aktif (logika 0). Bila yang terkena cahaya adalah garis hitam, cahaya akan
diserap atau tidak dipantulkan sehingga photo diode tidak aktif dan transistor
juga tidak aktif (logika 1). [3]
Pada perancangan ini, perbandingan antara elemen tebal dan tipis
adalah ± 2,5 : 1.
2.2. Sensor BarcodeReader
Sensor barcode reader terdiri dari 2 buah device, LED super bright
dan photo dioda. LED super bright berfungsi sebagai sumber cahaya
12
2.2.1. Rangkaian Photo diode
Photo diode dirangkai dengan sebuah transistor agar photo diode
dapat difungsikan sebagai saklar seperti halnya phototransistor[7].
Rangkaian photo diode seperti terlihat pada gambar 2.6.
Gambar 2.6. Rangkaian photo diode pada sensor Barcode Reader
Untuk mengetahui keluaran tegangan dari Q1 pada gambar 2.6, harus
didapat nilai IB. Besar niai IB dapat dihitung dengan rumus :
1 2 R R V V I D BE CC B β + − =
Bila nilai IB sudah diketahui, maka nilai IC adalah :
B C I I =β
Sehingga :
1
R I V VCE = CC − C
Cahaya LED super bright yang terpantul dan masuk ke photo diode
basis transistor (IB) akan semakin besar, sesuai dengan persamaan (2.1).
Keadaan tersebut akan menyebabkan arus collector (IC)akan besar, sehingga
nilai VCE akan semakin kecil, sesuai dengan persamaan (2.2 dan 2.3).
Sebaliknya, apabila tidak ada cahaya LED super bright (cahaya tidak
memantul), maka photo diode tidak aktif (nilai RD2 besar) sehingga arus IB
kecil dan mengakibatkan arus collector (IC) kecil sehingga VCE besar
[persamaan (2.2 dan 2.3)].
Dengan menggunakan persamaan (2.1), diperoleh :
2 1 2 1 D B BE CC B BE CC D B B R I V V I R V V R I I R − − = − = + β β (2.4)
Kemudian dengan mengacu pada persamaan (2.2), maka persamaan (2.3)
dapat dituliskan:
(2.5) C
B CC
CE V I R
V = −β
(
)
B B BE CE B B BE CC CC CE R I V V R I V V V V + = − − − = (2.6)2.2.2. Rangkaian LED Super Bright
LED super bright dimodulasi oleh sebuah pembangkit (osilator)
gelombang kotak. Hal ini dilakukan untuk menambah sensitifitas penerimaan
cahaya pada photo diode . Osilator dibangkitkan dengan rangkaian timer 555
astable seperti terlihat pada gambar 2.7. Besarnya frekuensi yang dihasilkan
dapat dihitung dengan rumus:
(
)
(
)
[
C RA RB]
14
Gambar 2.7. Rangkaian Timer 555 Astable (datasheet LM555)
Untuk dapat mengaktifkan LED super bright, dibutuhkan arus basis
(IB). IB dihasilkan oleh tegangan keluaran osilator saat TH (logika 1) dan LED
super bright akan tidak aktif saat TL (logika 0). Tegangan saat TH dianggap
sebagai VCC. Gambar 2.8 memperlihatkan rangkaian dasar dari LED super
bright , sedangkan besarnya arus IB dapat dinyatakan: B
D D
CC V R I V − = 2.
D D CC
I V V R2 = −
R2 VCC
D1
Gambar 2.8. Rangkaian dasar LED super bright
2.3. Pengondisi Sinyal
Pengondisi sinyal yang digunakan adalah rangkaian pembanding
menggunakan penguat opersional (Op-Amp).
VCC Mikrokontroller Sensor Barcode VCC R2 R1 + -U1A 3 2 1 8 4
Gambar 2.9. Op-Amp sebagai pembanding
Vp Vn , Vee -Vsat Vout Vp Vn , < ≅ + = > + ≅ −
= Vsat Vcc Vout
(2.9)
Pada perancangan ini, Op-Amp dipakai sebagai komparator atau
pembanding. Komparator akan membandingkan inverting input (Vn) dan
non-inverting input (Vp). Apabila nilai Vn lebih besar daripada nilai Vp, maka
tegangan keluaran (VOUT) akan sama dengan -VSAT atau mendekati nilai
tegangan -VCC. Jika tegangan pada Vn lebih kecil daripada nilai tegangan
pada VP, maka VOUT akan mendekati nilai tegangan +VCC.
Tegangan acuan (Vreff) pada gambar 2.9 merupakan tegangan
masukan pada inverting input. Besarnya tegangan acuan harus berada
diantara tegangan masukan non-inverting yang merupakan tegangan yang
berasal dari sensor barcode. Besarnya tegangan referensi dapat dihitung
dengan persamaan :
(
)
CCreff V
R R
R
V ⎟⎟×
16
2.4. Motor Stepper
Motor stepper terdiri atas magnet permanen yang berputar pada
porosnya, yang sering disebut rotor, dan elektromagnet pada bagian yang
tidak bergerak yang berada pada sekeliling motor, yang sering disebut stator.
Gambar 2.10 menunjukkan sebuah putaran penuh pada motor stepper. Pada
posisi 1, dapat dilihat bahwa rotor berada pada posisi atas, yang berarti rotor
pada bagian ini aktif (elektromagnet diberi tegangan). Untuk menggerakan
rotor searah jarum jam (clockwise), elektromagnet bagian atas
di-non-aktifkan dan elektromagnet bagian kanan didi-non-aktifkan, yang mengakibatkan
rotor bergerak 900 searah jarum jam. Rotor akan bergerak dengan sendirinya
mengikuti elektromagnet yang diaktifkan. Proses ini diulang dengan cara
yang sama pada elektromagnet bagian bawah dan kiri hingga mencapai
posisi awal.
Pada contoh di atas, digunakan “full-step” atau resolusi tunggal
dengan resolusi putaran motor adalah 900. Sedangkan pada kenyataannya,
resolusi putaran motor jauh lebih tinggi dari ini (derajat putaran per pulsa).
Sebagai contoh, untuk motor dengan resolusi 50 akan bergerak 50 per pulsa,
atau membutuhkan 75 pulsa (step) untuk berputar satu putaran penuh.
Bila motor digunakan untuk memindahkan barang, maka jarak
tempuh perpindahan dapat dituliskan dengan persamaan :
d
X = α 0 ×π
360 (2.11)
dengan X adalah jarak perpindahan (m), α adalah resolusi sudut per step, d
adalah diameter roda putar, dan π = 3.141592654
Untuk “half-step” atau resolusi ganda, pada posisi awal,
elektromagnet bagian atas akan aktif, kemudian dua elektromagnet aktif
untuk langkah ke dua. Akibat dari perbandingan kedua elektromagnet
tersebut, rotor akan berada diantaranya. Kemudian untuk putaran
selanjutnya, hanya elegtromagnet sebelah kanan yang aktif. Begitu
seterusnya hingga rotor kembali pada posisi awal. Gambar 2.11
memperlihatkan tiga pergerakan rotor pada resolusi ganda[6].
18
2.5. Penggerak Motor Stepper
Penggerak motor stepper menggunakan rangkaian digital dengan
sebuah osilator pembangkit gelombang kotak timer 555 astable seperti
terlihat pada gambar 2.7. Pergerakan per langkah motor stepper akan sama
dengan nilai frekuensi yang dibangkitkan oleh osilator tersebut. Nilai
frekuensi yang dibangkitkan oleh osilator dapat dihitung dengan persamaan
(2.4). Keluaran dari osilator akan mengendalikan IC bidirectional 4-bit shift
register yang kemudian dikonversikan untuk mengendalikan IC penggerak
motor stepper unipolar. Keluaran dari osilator juga mengendalikan IC
flip-flop dual ‘D’ tipe positive-edge-triggered yang akan mengendalikan saklar
pergerakan motor (CW atau CCW) pada IC bidirectional 4-bit shift
register[8].
Gambar 2.12 menunjukkan gelombang keluaran dari osilator dan
keluaran dari IC bidirectional 4-bit shift register. THigh gelombang IC
bidirectional 4-bit shift register sama dengan 1 gelombang penuh keluaran
Gambar 2.12. Gelombang dasar pergerakan pulsa motor stepper [8]
2.6. Penampil LCD 2 X 6 Karakter
LCD (Liquid Crystal Display) adalah suatu tampilan (display)
dari bahan cairan kristal yang dioperasikan dengan menggunakan sistem dot
matriks. Pada perancangan alat ini digunakan Display LCD 2 × 16 karakter
seperti terlihat pada gambar 2.13, yang artinya LCD ini memiliki 2 baris dan
16 kolom karakter. Sehingga jumlah total karakter yang dapat ditampilkan
sekaligus adalah sebanyak 32 karakter. Masing-masing karakter tersebut
20
5v
DB0 DB1 DB2 DB3
DB7 DB4 DB5
RS
E 0
2 1 3 4 5 6 7
8
9
10 11
12 13 14
15 16
LCD
DISPLAY
2 * 16 KARAKTER
DB6
R/W
Vcc Vee GND A K
Gambar 2.13. Display LCD 2 × 16 karakter
LCD menggunakan sistem pengiriman data 8-bit dan diperlukan
10 jalur data untuk berhubungan dengan sistem mikrokontroler AT89S51.
Kesepuluh jalur data tersebut adalah :
1. Delapan jalur data untuk mengirimkan data instruksi dan data karakter
yang akan ditampilkan. Kedelapan jalur tersebut secara berurutan yaitu
kaki 7 (DB0), kaki 8 (DB1), kaki 9 (DB2), kaki 10 (DB3), kaki 11
(DB4), kaki 12 (DB5), kaki 13 (DB6), kaki 14 (DB7).
2. Dua jalur lainnya adalah kaki 4 (RS/Register select), dan kaki 6
(E/Enable).
LCD yang digunakan adalah LCD yang memiliki 16 pin, seperti
Tabel 2. 2. Tampilan LCD
Nomor Pin Simbol Nomor Pin Simbol
1 VEE (0V) 9 DB2
2 VCC (5V) 10 DB3
3 GND (0V) 11 DB4
4 RS 12 DB5
5 R/W 13 DB6
6 E 14 DB7
7 DB0 15 A
8 DB1 16 K
Deskripsi pin:
1. DB0 s/d DB7, merupakan jalur data yang dipakai untuk menyalurkan
kode ASCII maupun perintah pengatur kerja LCD.
2. RS (register select), merupakan pin yang dipakai untuk membedakan
jenis data yang dikirim ke LCD. Jika RS berlogika ‘0’, maka data yang
dikirim adalah perintah untuk mengatur kerja LCD. Jika RS berlogika
‘1’, maka data yang dikirim adalah kode ASCII yang ditampilkan.
3. R/W (read/write), merupakan pin yang digunakan untuk mengaktifkan
pengiriman dan pengambilan data ke dan dari LCD. Jika R/W berlogika
‘0’, maka akan diadakan pengiriman data ke LCD. Jika R/W berlogika
‘1’, maka akan diadakan pengambilan data dari LCD.
4. E (enable), merupakan sinyal sinkronisasi. Saat E berubah dari logika ‘1’
ke ‘0’, maka data di DB0 s/d DB7 akan diterima atau diambil dari port
mikrokontroler.
5. A (anoda) dan K (katoda), merupakan pin yang digunakan untuk
22
2.7. Mikrokontroler AT89S51
Mikrontroler AT89S51 merupakan salah satu keluarga dari MCS-51
keluaran Atmel. Jenis mikrokontroler ini pada prinsipnya dapat digunakan
unutuk mengolah data per bit maupun data 8 bit secara bersamaan. Gambar
2.14 menunjukkan susunan kaki dari mikrokontroler AT89S51. Beberapa
fasilitas yang dimiliki oleh mikrokontroler AT89S51 adalah sebagai berikut :
Sebuah Central Processing Unit 8 bit.
Osilator internal dan rangkaian pewaktu.
RAM internal 128 x 8 bit.
Flash memori 4 Kbyte.
Lima buah jalur interupsi (dua buah interupsi eksternal dan tiga
buah interupsi internal).
Empat buah programable port I/O yang masing-masing terdiri
dari delapan buah jalur I/O.
Sebuah serialport dengan kontrol serial full duplex UART.
Kemampuan unutuk melaksanakan operasi aritmatika dan
operasi logika.
Kecepatan dalam melaksanakan instruksi per siklus 1,1
Gambar.2.14 Konfigurasi pin AT89S51
Penjelasan beberapa pin mikrokontroler adalah sebagai berikut :
Port 0 merupakan port paralel 8 bit dua arah. Posisi Low
Significant Bit (LSB) terletak pada pin 39 dan Most Significant
Bit (MSB) terletak pada pin 32.
Port 1 merupakan port paralel 8 bit dua arah. Posisi (LSB)
terletak pada pin 1 dan (MSB) terletak pada pin 8.
Port 2 merupakan port paralel 8 bit dua arah. Port ini megirim
byte alamat-alamat bila dilakukan pengaksesan memori
eksternal. LSB terletak pada pin 21 dan MSB pada pin 28.
Port 3 merupakan port paralel 8 bit dua arah. Posisi (LSB)
terletak pada pin 10 dan (MSB) terletak pada pin 17. Port ini
mempunyai beberapa fungsi khusus yang ditunjukkan pada
24
Tabel. 2.3 Fungsi pin pada port 3
Pin-pin pada port 3 Fungsi Pengganti P3.0 RxD (Portinput serial)
P3.1 TxD (Portoutputserial)
P3.2 INT0 (Interrupt eksternal 0)
P3.3 INT1 (Interrupt eksternal 1)
P3.4 T0 (Input Eksternal timer 0)
P3.5 T1 (Input Eksternal timer 1)
P3.6 WR (Perintah write pada memori eksternal)
P3.7 RD (Perintah read pada memori eksternal)
Dalam perancangan ini, register kontrol yang dipakai antara lain :
¾ IE (Interupt Eneble)
Register IE digunakan untuk mengaktifkan atau menonaktifkan
sarana interupsi. IE.0 sampai IE.6 mengatur masing-masing sumber
interupsi, sedangkan IE.7 mengatur interupsi secara keseluruhan. Jika
IE.7 bernilai 0, maka sistem interupsi akan menjadi non-aktif atau
keadaan IE.0 sampai IE.6 tidak diperhatikan.
¾ TMOD (Timer Mode)
Register TMOD digunakan untuk mengatur mode kerja timer 0
dan timer 1. Timer digunakan untuk menentukan besarnya baudrate
¾ TCON (Timer Control)
Register TCON digunakan untuk memulai atau menghentikan
proses pencacah timer, mengatur sinyal interupsi dari INT0 atau
INT1, serta memantau apakah ada sinyal yang masuk ke INT0 atau
INT1.
¾ SCON (Serial Control)
Register SCON digunakan untuk mengatur perilaku dari UART
yang diantaranya adalah memantau proses pengiriman dan
penerimaan data seri.
2.7.1. Osilator Mikrokontroler
Rangkaian osilator adalah rangkaian pembangkit frrekuensi untuk
menentukan besarnya waktu untuk tiap siklus pada mikrokontroler. Waktu
yang dibutuhkan untuk tiap siklus dapat dicari dengan persamaan :
osc Cycle
f
BAB III
PERANCANGAN DAN IMPLEMENTASI
3.1 Diagram Blok Pembaca Barcode (Barcode Reader) Diagram blok keseluruhan dari barcode reader adalah :
Sensor Barcode reader
Pengondisi sinyal
Mikrokontoler AT89S51
Penampil (LCD)
Kartu
Gambar 3.1. Diagram blok barcode reader
3.2 Kartu Barcode
Barcode dibuat menggunakan Corel Draw 11, dengan font 3 of 9 versi
normal dan full ASCII. Barcode di cetak menggunakan kertas foto glosy untuk
mendapatkan hasil yang baik, kemudian ditempelkan pada bekas kartu perdana
sim telepon seluler dengan ukuran tertentu seperti pada gambar 3.2, agar dapat
dibaca oleh barcode reader dengan baik.
barcode
Penggerak motor stepper
Motor Stepper
Gambar 3.2. kartu yang memiliki barcode
Bekas kartu perdana sim telpon
Barcode yang ditempelkan
3.3 Sensor Barcode Reader 3.3.1. LED Super Bright
Sensor barcode reader terdiri dari LED super bright dan photo diode
seperti terlihat pada gambar 3.3. Karakteristik dari LED super bright tersebut
mirip dengan LED biasa, hanya saja arus maju maksimum (ID) pada LED super
bright lebih besar dari LED biasa dan intensitas cahaya yang dihasilkan lebih
kuat. Arus maju (ID) berkisar antara 10 – 20mA, dan tegangan maju (VD)berkisar
antara 1.6 – 2 Volt. Nilai ID dan VD berdasarkan karakteristik LED pada
umumnya, karena data dari LED tidak diketahui. Pada perancangan, digunakan ID
= 10mA dan VD = 1.7 Volt dengan VCC = 5 Volt. Untuk membatasi besarnya ID
digunakan hambatan (R2)
Untuk mendapatkan nilai hambatan yang diinginkan, sesuai dengan
persamaan (2.5), didapat :
3 2
10 10
7 , 1 5
−
× − =
R
Ω =330 2
28
3.3.2. Frekuensi Pemodulasi
Frekuensi yang dibangkitkan oleh timer 555 asstable merupkaan frekuensi
pemodulasi LED super bright. Frekuensi modulasi harus mampu menghasilkan
pencahayaan yang cukup pada LED super bright, sehingga kartu barcode mampu
memantulkan cahaya. Pada perancangan ini, penulis menggunakan frekuensi 105
kHz, dengan acuan bahwa frekuensi tersebut sudah mampu menghasilkan
pencahayaan yang cukup pada LED super bright. Dari persamaan (2.4), frekuensi
tersebut didapat dengan:
(
)
(
)
[
]
kHz F n F 57 . 104 180 2 100 30 693 . 0 1 = × + × × =3.3.3. Photo Diode
Photo diode merupakan penerima cahaya yang dipantulkan oleh kartu
barcode. Perubahan nilai tahanan pada photo diode terjadi ketika intensitas
cahaya yang diterima berubah. Perubahan tahanan pada photo diode akan
mempengaruhi besarnya tegangan yang keluar dari kaki kolektor transistor.
Rangkaian photo diode dan transistor ditunjukkan pada gambar 3.3.
Untuk nilai β = 75, VBE = 0.6 (data sheet 2N2222A) nilai R photo diode
saat terkena cahaya = 30 kΩ dan saat tidak terkena cahaya = 50 kΩ. Nilai R photo
diode berdasarkan hasil pengukuran dengan kapasitas cahaya pada siang hari di
dalam ruangan. Dengan persamaan (2.6), bila nilai VBE tetap, maka nilai VCE
tergantung dengan nilai IBRB. Sedangkan nilai IB pada persamaan (2.1), bila VBE
dan VCC tetap, tergantung dari penjumlahan RD2 dan βR1. Sehingga untuk
mendapatkan perubahan nilai IB yang besar yang berbanding lurus dengan
perubahan nilai RD2, dibutuhkan nilai R1 yang jauh lebih kecil terhadap nilai RD2.
Dalam perancangan ini, penulis menggunakan nilai R1 = 330 Ohm, sehingga:
• Nilai VCE saat cahaya memantul
(
)
A I I R R V V I B B D BE CC B μ β 365 . 80 330 75 10 30 6 . 0 5 3 1 2 = × + × − = + − = Maka,(
)
Volt V V R I V V CE CE C CC CE 011 . 3 330 10 027 . 6 5 3 1 = × × − = − = −• Nilai VCE saat cahaya tidak memantul
(
)
A I I R R V V I B B D BE CC B μ β 863 . 58 330 75 10 50 6 . 0 5 3 1 2 = × + × − = + − = mA I =6I I I C C B C 027 . 10 365 . 80
75× × 6
30 Maka,
(
)
Volt V V R I V V CE CE C CC CE 543 . 3 330 10 415 . 4 5 3 1 = × × − = − = −Keluaran dari kaki collector pada barcode reader difungsikan sebagai
masukan non-inverting op-amp, sedangkan masukan inverting menjadi tegangan
acuan yang besarnya diatur oleh pembagi tegangan sehingga berada di antara
selisih tegangan yang terjadi.
3.4 Pengkondisi Sinyal
Pengkondisi sinyal menggunakan rangkaian Op-Amp sebagai pembanding
tegangan seperti terlihat pada gambar 3.5, dengan tegangan acuan seperti gambar
3.4. sebagai pembandingnya. Dari persamaan (2.10), untuk menghasilkan
tegangan acuan 3.3 Volt dengan VCC = 5 Volt dan R1 = 1 kΩ, maka besar nilai R2:
kOhm R R R R R 94 . 1 7 . 1 10 3 . 3 7 . 1 10 3 . 3 5 3 . 3 3 . 3 3 2 2 3 2 2 1 = × = = × = +
karena nilai 1.94 kOhm untuk R2 tidak ada di pasaran, digunakan nilai yang
OUT
R2
VCC
R1
Gambar.3.4. Rangkaian pembagi tegangan
Op-amp yang dipakai adalah op-amp jenis singgle suplay dengan Vcc = 5
Volt dan Vee dihubungkan ke ground, sehingga Vout Op-Amp berkisar antara 0 -
5V (level TTL) yang menjadi masukan untuk mikrokontroler AT89S51.
R1
OUT Input
VCC
R2 +
-LM324
3
2
1
4
11
Gambar.3.5. Rangkaian pembanding pada Op-Amp
3.5 Motor Stepper
Motor stepper yang digunakan adalah jenis unipolar 4 kabel, dengan sudut
3.750 per step. Motor stepper digunakan untuk menggerakan kartu barcode
sehingga kartu melewati sensor barcode reader untuk dibaca. Untuk mendapatkan
32
digunakan roda yang kecil, sehingga satu step motor tidak melebihi lebar 1 bar
atau space sempit barcode.
Pada perancangan ini, penulis menggunakan roda dengan diameter = 10.5
mm. Dari persamaan (2.11), didapat jarak perpindahan kartu untuk tiap step
sejauh:
(
)
mm X mm X d X 344 . 0 5 . 10 360 75 . 3 360 0 0 0 = × × = × = π π αdengan X adalah jarak perpindahan per step
Dengan batasan lebar 1 bar atau space sempit = 0.587 mm dan 1 bar atau
space lebar = 1.446 mm, maka X = 0.344 mm masih memenuhi syarat, sehingga
roda dapat digunakan.
Dari persamaan (2.4) dengan nilai R1 = 300 Ohm dan R2 = 1 kOhm, dan C
= 1 µF, maka didapat :
Hz 627 627.39 ) 10 1 )) 10 1 2 ( 300 ( 693 . 0 ( 1 6 3 ≅ = × × × × + × = − F F
Untuk nilai frekuensi = 627 Hz, dan X = 0.344 mm, maka 1 bar atau space sempit
membutuhkan waktu :
F = 627 Hz = 627 step per detik
1 step = 1.59 m detik
sehingga,
1 bar atau space sempit = 344 . 0
587 . 0
step = 1.71 step
maka,
1 bar atau space sempit = 1.71 x (1.59 x 10-3) = 2.71 m detik
sedangkan untuk 1 bar atau space lebar adalah:
step
step 4.2
344 . 0
446 .
1 =
sehingga,
waktu yang dibutuhkan = 4.2 x (1.59 x 10-3) = 6.68 m detik
Nilai frekuensi osilator ditentukan dengan mengacu pada kekuatan motor
stepper untuk mampu memberikan torsi yang cukup guna menarik kartu dengan
kecepatan yang maksimum. Karena data dari motor stepper tidak penulis
dapatkan, nilai torsi dan kecepatan maksimum didapat atas dasar percobaan.
3.6 Penggerak Motor Stepper
Motor stepper membutuhkan rangkaian penggerak tersendiri agar motor
tidak terbebani (arus motor konstan) saat mikrokontroler melakukan proses
pembacaan. Mikrokontroler hanya melakukan pensaklaran (switching) untuk
menentukan arah putaran, mengaktifkan dan menghentikan putaran motor,
sehingga arus yang mengalir pada motor konstan dan gerakan motor juga konstan.
Jika saklar 1 (S0) aktif, maka motor bergerak searah jarum jam dan jika saklar 2
(S1) aktif, maka motor bergerak berlawanan arah dengan jarum jam. Jika kedua
34
rangkaian penggerak putaran motor stepper dengan urutan sistem kerja
ditunjukkan oleh gambar 3.7.
R22 330 MoToR
1 2 3 4 5
U13B SN7474 12 11 9 8 14 10 7 13 D CLK Q Q VC C PR GN D CL + C13 1 uF D7 LED U13A SN7474 2 3 5 6 14 4 7 1 D CLK Q Q VC C PR GN D CL GND U15D ULN2803 4 10 9 15 IN COM GND OUT R21 330 R24 330 D5 LED + C15 4.7 uF R18 2k2 Switching mikrokontroller 1 2 U15A ULN2803 1 10 9 18 IN COM GND OUT U12 LM555 2 5 3 7 6 4 8 1 TR CV Q DIS THR R VC C GN D
R20 10 k
U14 SN74194 2 3 4 5 6 7 11 9 10 1 15 14 13 12 16 8 SR A B C D SL CLK S0 S1 CLR QA QB QC QD VC C GN D + C16 470 uF U15B ULN2803 2 10 9 17 IN COM GND OUT U15C ULN2803 3 10 9 16 IN COM GND OUT
Vcc 20 Volt
R17 470 R16 550 D6 LED Q2 2N3904 3 2 1 D4 LED Vcc 5 Volt
R23 330 Q3 2N3904 3 2 1 C14 370 nF
R19 10 k
Gambar 3.6. Rangkaian penggerak motor stepper
Osilator Konverter Driver Stepper
Switching
Motor Stepper
Gambar 3.7. Digram blok penggerak motor stepper
• Osilator
Osilator yang digunakan adalah timer 555 astable seperti terlihat pada
gambar 2.7 untuk menghasilkan frekuensi dengan nilai frekuensi sama
dengan jumlah step per detik. Besarnya nilai frekuensi dapat dicari
• Pensaklaran (Switching)
Digunakan untuk mengendalikan arah putaran motor. Switching atau
pensaklaran dilakukan oleh Mikrokontroler.
• Konverter
Mengubah pulsa (gelombang kotak) yang dihasilkan oleh osilator
menjadi betuk gelombang kotak dasar untuk menggerakan driver motor
stepper seperti terlihat pada gambar 2.13. Pergeseran pulsa keluaran (CW
atau CCW) dari konverter tergantung dari pensaklaran yang dilakukan
oleh mikrokontroler.
• Penggerak (Driver) Motor Stepper
Driver motor stepper adalah IC dengan darlington arus tinggi
(darlington high current) dan penggerak tegangan tinggi (high voltage
pheriperal driver) yang mampu menanganani arus hingga 500 mA dan
tegangan hingga 50 Volt.[8]
3.7 Penampil LCD
LCD (Liquid Cristal Display) digunakan untuk menampilkan karakter
pada barcode yang terbaca oleh barcode reader. LCD yang digunakan memiliki 2
baris dengan kemampuan menampilkan 16 karakter tiap baris. Baris pertama
digunakan untuk menampilkan kata – kata yang penulis buat, sedangkan baris
kedua digunakan untuk menampilkan karakter barcode yang terbaca. Gambar 3.8
36
Karakter yang ditampilkan dimulai dari sisi sebelah kiri agar dapat terbaca
dengan mudah oleh pengguna. LCD dapat menampilkan semua karakter ASCII
dan simbol, dan dapat menerima karakter ASCII langsung tanpa perlu
dikonversikan, sehingga data yang dikirim oleh mikrokontroler adalah data berupa
karakter ASCII.
KATA – KATA DARI PENULIS
KARAKTER BARCODE
Gambar 3.8. Tampilan pada LCD 2 x 16 karakter
VCC AT89S51 20 40 1 2 3 4 5 6 7 8 16 17 GND VCC P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.6/WR P3.7/RD
LCD 2x16 Karakter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Gambar 3.9. Rangkaian LCD pada Mikrokontroler
3.8 Mikrokontroler AT89S51
Mikrokontroler AT89S51 digunakan sebagai pengambil data dari user dan
mengolah data sementara. Data yang diambil kemudian dikonversikan menjadi
data ASCII yang kemudian disimpan pada memori internal sebelum dikirim
Pada tabel 3.1. dapat dilihat penggunaan port – port pada mikrokontroler
pada perancangan barcode reader.
Tabel 3.1. Penggunaan port – port pada mikrokontroler
No Nama Port Keterangan
1 Port 0.0 Masukan sensor barcode reader 2 Port 1.0 – port 1.7 Keluaran pada LCD
3 Port 2.0 – port 2.1 Switching motor stepper
4 Port 2.5 – port 2.7 Perencanaan tampilan LED untuk pilihan tampilan LCD atau Komputer (optional) 5 Port 3.0 – port 3.1 Komunikasi serial RS 232 (optional)
6 Port 3.3 – port 3.5 Switching pilihan tampilan LCD atau komputer (optional)
7 Port 3.6 – port 3.7 RS dan E LCD
Optional pada penggunaan port digunakan untuk perancangan selanjutnya
bila diperlukan. Komunikasi yang dirancang sebagai optional dengan device lain
adalah komunikasi serial RS 232.
3.8.1 Oscillator Mikrokontroler AT89S51
Rangkaian osilator menggunakan crystal quartz dengan frekuensi 11.0592
MHz dan kapasitor keramik C1 = C2 = 30pF (datasheet AT89S51, oscillator
characteristic). Gambar 3.10. memperlihatkan rangkaian osilator mikrokontroler
38
Gambar 3.10. Rangkaian osilator mikrokontroler AT89S51
Dengan menggunakan persamaan (2.12), besarnya clock untuk tiap cycle
pada instruksi mikrokontroler AT89S51 adalah :
S f
T
osc
Cycle 1.1μ
0592 . 11
12
12 = =
=
3.8.2 Data Masukan Mikrokontroler AT89S51
Data masukan yang berupa pulsa dari Op-Amp yang berasal dari logika
barcode dimasukkan melalui port 0.0 seperti terlihat pada gambar 3.11, dengan
logika 1 untuk bar atau space lebar dan logika 0 untuk bar atau sapce sempit.
Data tersebut diolah per bit yang kemudian dikonversikan menjadi data ASCII
sebagai data yang dikirimkan ke LCD.
AT89S51
20 40 39
GND VCC P0.0/AD0
Op-Amp
VCC
3.8.3 Pensaklaran (Switching) oleh Mikrokontroler
Untuk mengendalikan putaran motor (berhenti, CCW, dan CW),
mikrokontroler membutuhkan 2 port, yaitu port 2.1 dan port 2.0. Gambar 3.12
memperlihatkan rangkaian pensaklaran yang dilakukan oleh mikrokontroler.
Pensaklaran ini menggunakan logika rendah, atau dengan kata lain, salah satu
saklar akan aktif bila logika pada salah satu port (port 2.1 atau 2.0) berlogika 0,
dan saklar akan tidak aktif bila logika pada port adalah 1. Saat port 2.0 berlogika
0 dan port 2.1 berlogika 1 (saklar 1 aktif, saklar 2 tidak aktif), motor akan
bergerak berlawanan arah dengan jarum jam (CCW). Saat logika pada port 2.1
adalah logika 0 dan port 2.0 berlogika 1 (saklar 2 aktif, saklar 1 tidak aktif), motor
akan bergerak searah jarum jam (CW). Motor akan berhenti bila port 2.0 dan port
2.1 memiliki logika yang sama (kedua saklar aktif atau kedua saklar tidak aktif)
Saklar 1 (S0)
Saklar 2 (S1) VCC
AT89S51
20
40 21
22 GND
VCC P2.0/A8
P2.1/A9
Gambar 3.12. Rangkaian pensaklaran oleh mikrokontroler
3.8.4 Diagram Alir dan Algoritma Keseluruhan Sistem Kerja
Secara garis besar, keseluruhan dari sistem kerja barcode reader adalah
membedakan ketebalan dari tiap bar atau space dari barcode. Bar atau space tebal
dibaca sebagai logika satu dan yang tipis dibaca sebagai logika 0. Kartu barcode
40
barcode dan dikonversikan menjadi logika digital. Dalam perancangan ini, motor
stepper digerakkan oleh sebuah penggarak tersendiri, sehingga mikrokontroler
hanya mengendalikan kapan saat motor berputar atau berhenti serta
mengendalikan arah putarannya. Berikut adalah algoritma dari sistem kerja
barcode reader.
• Mulai
• Inisialisasi memori, timer dan port yang akan digunakan
• Mengatur (setting) penampil LCD
• Menampilkan pesan pembuka pada LCD
• Menunggu adanya kartu barcode dimasukkan
• Mengaktifkan motor stepper untuk menarik kartu agar melewati sensor
barcode reader
• Pengecekan apakah posisi kartu benar atau tidak sebanyak 2 kali
pengecekan
o Mengeluarkan kartu bila kartu salah o Kembali ke awal program (mulai)
• Mengambil data dari sensor pembaca barcode
• Mengubah data yang telah diambil ke dalam bentuk ASCII
• Mengeluarkan kartu barcode
• Mengirim (menampilkan) data yang telah dikonversikan pada LCD
Dari algoritma di atas, dapat dibuat diagram alir (flow chart) seperti pada gambar 3.13. MULAI INISIALISASI MEMORI, TIMER DAN PORT SETTING LCD TAMPILAN PESAN PEMBUKA
ADA KARTU ?
AKTIFKAN MOTOR STEPPER SEARAH JARUM
JAM (S0ON;S1OFF)
CEK POSISI KARTU SEBANYAK 2 KALI
POSISI KARTU BENAR ? PANGGIL SUBROUTIN AMBIL DATA PANGGIL SUBROUTIN KONVERSI DATA MENJADI KARAKTER ASCII TAMPILKAN KARAKTER PADA LCD TUNGGU TIDAK YA YA PENGECEKAN SELESAI ? YA TAMPILKAN KARAKTER SALAH KELUARKAN KARTU KELUARKAN KARTU TIDAK AKTIFKAN MOTOR STEPPER BERLAWANAN ARAH JARUM JAM (S0OFF;
S1ON)
TUNGGU TIDAK
42
3.8.5 Diagram Alir dan Algoritma Subroutine Pengambilan Data
Pada proses pengambilan data, mikrokontroler memeriksa warna (hitam
atau putih) barcode, kemudian memeriksa ketebalan barcode. Hal ini dilakukan
karena logika 1 atau 0 ditentukan dari tebal tipisnya barcode. Setelah satu bar
atau space selesai di periksa, kemudian dilanjutkan dengan pemeriksaan
berikutnya hingga satu karakter selesai diperiksa ( 5 bar dan 4 space). Kemudian
dilakukan pengecekan apakah ada karakter berikutnya. Bila ada, pengecekan
dilakukan seperti pada pengecekan karakter sebelumnya, bila tidak ada, program
akan keluar dari subroutine pengambilan data dan kembali ke program utama.
Algoritma pengambilan data:
• Pemeriksaan warna hitam atau putih
• Apakah satu karakter selesai diperiksa
• Pemeriksaan ketebalan (bar atau space)
o Bar atau space tipis dikonversi menjadi logika 0 o Bar atau space tebal dikonversi menjadi logika 1 • Apakah satu karakter selesai diperiksa (5 bar dan 4 space)
o Bila belum selesai, program dilanjutkan memeriksa bar atau space selanjutnya hingga satu karakter selesai seperti pemeriksaan
sebelumnya
• Simpan data yang telah diambil dalam memori internal
• Apakah semua karakter selesai diperiksa
o Bila belum selesai, ulangi pemeriksaan karakter
Dari algoritma diatas, maka dapat dibuat diagram alir (flow chart) dari
pengambilan data seperti pada gambar 3.14.
gambar 3.14. Diagram alir proses pengambilan data barcode
Pengambilan data karakter ada barcode dilakukan dengan sistem
scanning. Dalam hal ini, kartu barcode akan bergerak di atas sensor pembaca
barcode, sensor akan membaca perbedaan warna barcode (hitam dan putih),
kemudian akan melakukan pemeriksaan ketebalan dengan sistem penundaan yang
disesuaikan dengan kecepatan putaran motor stepper. Besarnya nilai penundaan
ditentukan berdasarkan waktu yang ditempuh oleh motor untuk membaca bar atau
44
perbedaan ketebalan. Berikut contoh listing program untuk pengambilan data
barcode.
putar:
jnb p0.0,nol
acall tunda_m
djnz r5,putar
mov r5,#20
dec r2
setb bit2
mov c,bit2
rrc a
kel:
jnb p0.0,cek
acall tunda_m
djnz r5,kel
sjmp sls
nol:
dec r2
clr bit2
rrc a
sjmp cek
Sistem tunda dilakukan dengan memanfaatkan timer1 yang merupakan
fasilitas dari mikrokontroler AT89S51. Perhitungan besarnya tunda dapat
dilakukan dengan mudah karena satu siklus mikrokontroler sama dengan 1.1 µS.
Misalnya untuk penundaan 2 mS, berarti dibutuhkan 2000/1.1 siklus atau sama
dengan 1818, sehingga timer dapat di isi dengan -1818 atau F8E6 hex. Berikut
contoh listing program untuk proses penundaan selama 2 mS.
tunda_m:
mov th0,#high -1818
mov tl0,#low -1818
tunggu_m:
jnb tf0,$
clr tf0
clr tr0
3.8.6 Diagram Alir dan Algoritma Subroutine Konversi Data
Proses konversi data merupakan proses pengubahan data dari bentuk
hexadesimal menjadi karakter ASCII sehingga proses pengiriman ke LCD dapat
dilakukan dengan mudah. Data hexadesimal merupakan data hasil pembacaan
karkter barcode. Proses konversi dilakukan dengan membandingkan data
hexadesimal yang terbaca oleh alat dengan karakter ASCII yang sebelumnya telah
disimpan di dalam lookup table. Pembandingan data tersebut disesuaikan dengan
tabel standar carácter barcote kode 39 seperti terlihat pada tabel 2.1. Konversi
dilakukan karena LCD mampu menerima karakter ASCII secara langsung.
Gambar 3.15 menunjukkan diagram alir proses konversi data menjadi data ASCII.
Algoritma dari proses pengubahan data tersebut adalah :
• Pengambilan karakter ASCII pada lookup table
• Pemeriksaan apakah data yang telah diambil sama dengan tabel
barcode yang telah dibuat
o Bila tidak ada, program akan menyimpan karakter salah untuk
dikirimkan ke LCD
• Tunjuk karakter ASCII yang sesuai dengan tabel barcode
• Simpan karakter ASCII yang sudah dibandingkan untuk dikirimkan ke
LCD
• Pemeriksaan apakah semua data yang ada sudah di konversi ke bentuk
karakter ASCII
o Bila belum, lakukan pembandingan seperti data sebelumnya
46
MULAI
SIMPAN ALAMAT
LOOKUP TABLE KE REGISTER 16 BIT
PERIKSA DATA
SUDAH SELESAI ? TUNJUK DAN SIMPAN
KARAKTER ASCII DALAM MEMORI 8 BIT
PERIKSA SEMUA DATA SUDAH DI KONVERSI ADA DALAM TABEL ?
SIMPAN KARAKTER SALAH DALAM MEMORI 8 BIT YA
TIDAK
NAIKAN ALAMAT MEMORI 16 BIT (+1)
TIDAK
RET YA
Bab ini akan membahas hasil atau informasi dari data yang telah diambil
dan pembahasan yang menyatakan bahwa alat yang telah dirancang bekerja
dengan baik. Gambar 4.1 memperlihatkan bentuk fisik dari alat yang telah
dirancang.
Dari hasil dan pembahasan diharapkan dapat mengetahui kelemahan dan
kekurangan yang masih terdapat pada alat ini, sehingga alat yang telah dirancang
dapat lebih disempurnakan untuk tujuan dan pemanfaatan secara riil.
Gambar 4.1. Bentuk fisik alat dilihat dari atas tanpa penutup
48
4.1. Pengamatan Dari Alat
Pengamatan yang dilakukan barupa perbandingan pembacaan barcode
antara bacode reader yang dirancang sendiri, dengan barcode reader seperti pada
gambar 4.2, yang memiliki merek dagang PromptScanTM. Pembaca barcode
PrompScanTM adalah pembaca yang digunakan pada perpustakaan Universitas
Sanata Dharma kampus III. Pengamatan juga dilakukan pada ketelitiaan alat
dalam membaca barcode yang sudah ditempelkan pada bekas kartu perdana (sim
card) telepon seluler seperti pada gamba 4.3.
Gambar 4.2. Barcode reader PromptScanTM
Gambar 4.3. Barcode yang ditempelkan pada bekas kartu perdana
4.1.1. Kartu barcode
Kartu barcode yang digunakan adalah kartu bekas sim card telepon seluler
yang ditempeli dengan kertas foto glossy sebagai tempat barcode dan amplas
yang digunakan untuk media penarikan kartu oleh roda pada motor. Spesifikasi
dari kartu dapat dilihat pada gambar 4.4.
Gambar 4.4. Spesifikasi dan logika yang diberikan oleh barcode.
Batas awal dan batas akhir pada kartu digunakan untuk mengetahui kapan
barcode mulai dibaca dan kapan pembacaan harus diakhiri. Lebar batas awal dan
batas akhir minimal adalah 3 kali lebar bar atau space tebal pada barcode yang
digunakan.
4.1.2. Ketelitian Barcode Reader
Dari hasil percobaan yang telah dilakukan, barcode reader mampu
membaca 11 karakter pada kartu dengan panjang keseluruhan barcode adalah 70
50
dengan panjang keseluruhan barcode adalah 70 mm (ukuran 1 bar dan space tipis
= 0.65 mm). Nilai pengukuran ketebalan barcode dilakukan pada software Corel
Draw®, dengan acuan bahwa pelebaran tinta dan efek eksternal lainnya diabaikan
sehingga ukuran tersebut dianggap sama dengan ukuran saat di cetak. Pada
gambar 4.9 dapat dilihat bagian sensor pembaca barcode yang terletak di bagian
bawah dari alat barcode reader.
Pembaca barcode
LED super bright
Photo diode
Gambar 4.9. Peletakan sensor pembaca barcode.
4.1.3. Proses Pembacaan Barcode
Dalam proses pembacaan, mikrokontroler menggunakan penundaan
berulang sebanyak 20 kali, dengan waktu tunda untuk satu kali pengulangan
adalah 1.456 m detik. bit 1 dari bar atau space diambil bila selama 20 kali
perulangan sensor tetap membaca warna yang sama. bit 0 dari bar atau space
diambil bila dalam 20 kali perulangan sensor membaca warna yang berbeda.
Pembacaan berulang ini akan dilakukan sebanyak 10 kali dengan proses yang
ditambah 1 space untuk jarak tiap karakter. Nilai tunda maksimum (pembacaan
logika 1) dalam perulangan adalah (1.456 x 10-3) x 20 = 29.21 m detik.
Untuk pembacaan karakter berikutnya, mikrokontroler menganggap space
antar karakter sebagai bit 0. Bila yang terbaca adalah bit 1, maka mikrokontroler
menganggap bahwa semua karakter telah terbaca dan akan mengkonversikan data
hasil pembacaan dalam bentuk ASCII sebelum ditampilkan pada LCD.
4.2. Data Pengamatan
4.2.1. Data Pengamatan Perangkat Keras
¾ Tegangan keluaran dari transistor
Pada perancangan alat ini, digunakan transistor 2N2222A yang
dirangkai dengan sensor seperti terlihat pada gambar 2.6. Nilai
tegangan keluaran pada kaki kolektor transistor adalah:
• Saat sensor membaca warna putih = 3.57 – 4.50 Volt
• Saat sensor membaca warna hitam = 4.52 – 4.74 Volt
Tegangan keluaran dari transistor akan menjadi tegangan masukan
pada rangkaian pembading tegangan seperti terlihat pada gambar 3.5.
¾ Tegangan keluaran dari pembagi tegangan
Keluaran tegangan dari rangkaian pembagi tegangan seperti yang
ditunjukkan pada gambar 3.4 adalah 4.51 ± 0.03 Volt. Tegangan
keluaran dari pembagi tegangan akan menjadi tegangan referensi pada
52
4.2.2. Data Pengamatan Pembacaan barcode A. Kesalahan Pembacaan barcode
Dari percobaan yang dilakukan, terdapat karakter yang salah pada
tampilan LCD yang menyatakan bahwa barcode tidak terbaca dengan benar.
Kesalahan pembacaan dengan menampilkan karakter yang berbeda (bukan
karakter salah) dengan karakter yang tertulis pada kartu barcode, dianggap benar.
Contohnya, karakter pada kartu adalah karakter 5, tapi barcode reader membaca
atau menampilkan karakter pada LCD adalah karakter 1. Hal ini dilakukan karena
barcode reader dianggap mampu membaca karakter pada kartu barcode.Karakter
salah yang muncul adalah karakter @ seperti terlihat pada gambar 4.11.
Gambar 4.10. tampilan karakter salah pada LCD
Dengan membandingkan antara jumlah pembacaan dan kesalahan dalam
pembacaan, dapat dilihat persentase kesalahan rata – rata dalam pembacaan.
Persentase kesalahan rata – rata dapat dirumuskan daengan persamaan berikut:
% 100 × −
=
pembacaan Jumlah
pembacaan kesalahan
Jumlah pembacaan
Jumlah error
Nilai
Nilai kesalahan dari pembacaan yang dilakukan (data percobaan pada lampiran)
a. Percobaan dengan karakter barcode yang sama
1. Untuk 8 karakter pada kartu :
Persentase kesalahan = 12,5 %
Persentase k