Barcode Scanner banyak digunakan di toko-toko retail untuk men-scan barang barang yang akan dibayar pembeli di kasir atau digunakan di perpustakaan untuk mempercepat petugas mendaftar buku-buku yang akan dipinjam. Dengan adanya alat ini semuanya menjadi cepat dan mudah, karena setiap jenis barang memiliki kode barcode sendiri yang unik sehingga bisa dikelompokkan dengan mudah. Seperti halnya keyboard dan mouse , terdapat banyak macam tipe barcode scanner berdasarkan jenis komunikasinya, misalnya barcode scanner serial, PS/2, dan USB. Pada proyek kali ini barcode scanner PS/2 yang akan digunakan, sehingga penanganannya sama dengan keyboard PS/2. Komunikasi PS/2 adalah komunikasi serial asinkronous yang menggunakan 2 kabel yaitu data
dan clock.
Namun jangan salah sangka, serial sinkronous disini bukanlah protokol I2C(eis to see atau twi, atau apalah). konektor yang digunakan yaitu mini Din female. barcode scanner disini akan digunakan sebagai validator apakah seseorang berhak menggunakan peralatan tersebut atau tidak, jadi siapa orang yang memiliki kartu dengan nomor barcode yang sesuai berhak menggunakannya. Dan untuk mengetahui apakah ada orang yang menggunakan scan barcode tersebut, data hasil scanning dikirim melalui SMS ke nomor tertentu. Ide awal proyek ini bukan dari saya sendiri, namun dari orang lain , sehingga seberapa efektif alat akan berguna, saya sendiri meragukannya
. mikrokontroler yang digunakan yaitu avr Atmega32(sebenarnya terlalu berlebihan, dapat digunakan tipe lain) dari Atmel. PORTD.2 digunakan untuk clock, dan data di PORTD.7. PORTD.2 difungsikan sebagai pin untuk interupt eksternal, sedangkan PORTD.7 sebagai input biasa. berikut koneksinya :
Resistor pull-up yang digunakan sebesar 10 kOhm. Timing diagram dari data yang akan ditangkap adalah sebagai berikut :
(seperti halnya untuk keyboard PS/2)
Fungsi utama pengambilan data ada di rutin interupt eksternal :
interrupt [EXT_INT0] void ext_int0_isr(void)
{
static unsigned char data;
if (!edge)
{
if(bitcount < 11 && bitcount > 2) // 1=start,8 bit //data,1=parity =1 stop bit //,Bit 3 to 10 is data. Parity bit,
{ // start and stop bits tidak masuk
data = (data >> 1);
if(PIND &
data = data | 0×80; // ‘1′
}
if(bitcount==11)
{
mycount++;
}
MCUCR = 3;
edge = 1;
}
else {
MCUCR = 2;
edge = 0;
if(–bitcount == 0) // All bits received
{
decode(data);
bitcount = 11;
}
}
}
rutin rutin yang lain adalah untuk men-decode byte-byte yang masuk menjadi karakter ASCII, melalui sebuah look-up tabel. Untuk keperluan pengiriman SMS, digunakan handphone Siemes M45, dengan koneksi serial RS232. PDU yang dikirim disini tidak berubah-ubah(static) sehingga tidak perlu membuat generator PDU sendiri, cukup copy paste dari PDU generator yang sudah ada, misalnya http://www.rednaxela.net/pdu.php . Gambar alat :
file proyek ini sebenarnya sudah lama bercokol di HD ku (kira-kira sejak 2007, August), saya posting semoga berguna. (listing dengan bahasa C, IDE Code VisionAVR).
Referensi : Atmel Application Notes



7 comments
Comments feed for this article
November 23, 2008 at 4:59 am
agus whd
mas mau tanya gimana kalau IC nya di ganti dengan IC AVR atmega 8535 .bisa tak mas .matur suwun
November 24, 2008 at 6:04 am
oth3rside
bisa saja, namun ngepress. program diatas membutuhkan 1/4 dari program memori atmega32==>8kb, pdhal atmega8535 memiliki program memori 8kb.
December 1, 2008 at 4:21 am
mif_rakyat_jelata
gmn klo ICnya diganti 7805 saja mas?bisa tak?
kikikikkk….
piss,prop
December 4, 2008 at 12:00 pm
oth3rside
diganti Resistor ae Mip murah……
hahahaha
April 21, 2009 at 11:44 am
lynch
Mas, mohon bantuannya dong…
Saya lagi ngerjain tugas akhir, dan yang saya kerjain berhubungan dengan barcode scanner sama uC ATmega. Bisa pilihin program mana aja yang digunain intuk interfacing BS dng uC ga, punya Mas kan ada pake SMS nya jga? Saya dah download program Mas, tapi ga ngerti, mana yang dipake buat interfacing BS dng uC aja. Maklum pemula di uC AVR. Tolong dikirimin ke email saya y Mas. Makasih banget Mas.
mailto:fireboltattack@yahoo.com
September 16, 2009 at 4:11 pm
CJ DW
mas klo bs diposting sekalian skematik rangkaiannya..atau boleh dikirim ke email saya: njlaboet@gmail.com.
trus nanyajuga.. scanner barcode di sini tu menscan berapa bit dari kode warna gelap terang yg biasa discan..
Mohon juga dijelaskan prinsip pembacaan kode sampai pengolahan di mikro nya dlm tampilan LCD.
Thanks.
September 17, 2009 at 5:14 am
oth3rside
@cj dw
rangkaian nya cuma sperti yang diatas(line clock-data,di pull-up)
data yang dikeluarkan barcode project ini 8-bit yang dikirim secara serial sinkron
penulisan LCD nya menggunakan library codevision
pembacaan,dll->bisa di pelajari di source code yang bisa di donlot diats