4.2 Rangkaian pengirim data melalui infra merah
Data yang yang telah diolah mikrokontroler AT89C2051 dengan menggunakan led infra merah dikirimkan ke rangkaian penerima. Rangkaiannya seperti gambar di
bawah ini :
Gambar 4.3 Rangkaian pengirim data melalui infra merah
Pada rangkaian di atas led infra merah akan menyala jika basis pada transistor C945 diberi tegangan yang lebih besar dari 0,7 volt, ini akan sama artinya jika pada
P3.7 AT89C2051 diberi logika high 1, karena pin yang diberi logika high akan mempunyai tegangan 4 sd 5 volt, cukup untuk mengaktipkan transistor. Sedangkan
untuk mematikan led infra merah, maka P3.7 AT89C2051 harus diberi logika low 0, karena dengan memberikan logika low pada P3.7, maka P3.7 akan memiliki
tegangan 0 sd 0,009 volt, tegangan ini akan menyebabkan transistor tidak aktip.
Untuk pengiriman data agar data dapat dikirimkan dari jarak yang jauh, maka led infra merah harus dipancarkan dengan frekuensi 38 KHz karena frekuensi ini
bebas dari gangguan frekuensi infra merah alam. Jika led infra merah dipancarkan dengan frekuensi selai 38 KHz, maka pancarannya akan terganggu oleh frekuensi-
frekuensi infra merah dari alam, seperti frekuensi infra merah yang dipancarkan oleh
P3.7 AT89S51
LED_ir 5V
VCC
330
R2 4.7k
2SA733
Universitas Sumatera Utara
matahari, tumbuhan, bahkan badan manusia. Dengan menggunakan frekuensi 38 KHz, maka pancaran led infra merah yang dihasilkan oleh rangkaian tidak terganggu oleh
pancaran infra merah alam, sehingga jarak pengiriman data semakin jauh.
Untuk memancarkan frekuensi 38 KHz dari led infra merah, langkah yang harus dilakukan adalah dengan mengedipkannya menghidupkan dan mematikannya
dengan frekuensi tersebut, yaitu dengan memberikan logika high dan low pada P3.7 dengan selang waktu perioda :
3
1 1
1 0, 0000263
26,3 38
38 10 T
s s
f KHz
x Hz
µ =
= =
= =
Untuk mendapatkan perioda tersebut, maka program yang harus diberikan pada mikrokontroler AT89S8253 adalah:
38KHz: clr p3.7
nop nop
nop nop
nop nop
nop nop
nop nop
nop
Universitas Sumatera Utara
nop setb p3.7
nop nop
nop nop
nop nop
nop nop
nop nop
sjmp 38KHz
Mikrokontroler AT89S8253 memerlukan 12 clock setiap satu siklus mesin. Jika digunakan kristal 12 MHz, maka waktu yang diperlukan untuk satu siklus mesin
adalah :
6
12 1 10
1 12
Clock x
sekon s
MHz
µ
= =
Jika dihitung lamanya mikrokontroler AT89S51 mengerjakan perintah di atas : Instruksi
Siklus mesin Waktu
μS CLR
NOP SETB
SJMP 1
1 1
2 1
1 1
2
Universitas Sumatera Utara
Berdasarkan tabel di atas, maka lamanya logika low 0 pada P3.7 adalah 13 μ dan
lamanya logika high 1 adalah 13 μs, sehingga periodanya menjadi 26 μs.
13 μs
13 μs
Low High
26 μs
Dengan demikian frekuensi yang dihasilkan oleh P3.7 adalah :
6 6
1 1
1 1 10
38461 38, 461
26 26 10
26 x
f Hz
KHz T
s x
s µ
−
= =
= =
= =
Jika led infra merah dipancarkan dengan frekuensi ini, maka pancaran led infra merah dari rangkaian tidak akan terganggu oleh frekuensi infra merah alam. Sebagai catatan
frekuensi infra merah yang tidak dipengaruhi oleh frekuensi infra merah dari alam adalah anatara 38 KHz sd 40 KHz, frekuensi inilah yang digunakan sebagai frekuensi
remote kontrol dari TV, VCD dan DVD di seluruh dunia.
Ketika penerima infra merah menerima pancaran infra merah dengan frekuensi 38 KHz dari rangkaian pemancar, maka output dari penerima akan berlogika high 1,
jika pancaran infra merah ini dihentikan, maka penerima akan mendapatkan logika low 0 sesaat ± 1200
μs kemudian berubah menjadi high 1 kembali walaupun tidak ada pancaran infra merah dengan frekuensi 38 KHz. Ini sudah merupakan
karakteristik dari penerima infra merah yang digunakan TSOP 1738. Pada alat ini, logika high setelah setelah logika low sesaat itulah yang dijadikan sebagai data,
Universitas Sumatera Utara
sehingga dengan mengatur lebar pulsa high 1 tersebut dengan suatu nilai tertentu dan menjadikan nilai tersebut sebagai datanya, maka pengiriman data dapat dilakukan.
Untuk menghindari kesalahan dalam pengambilan data, maka pada alat ini ditambahkan satu data yang berfungsi sebagai startbit atau data awal. Data awal ini
mempunyai nilai tertentu, jadi ketika penerima mendapatkan sinyal low, penerima akan mengambil 1 data setelah sinyal low tersebut dan membandingkannya apakah
sesuai dengan data awal atau tidak. Jika tidak sama, maka penerima akan mengambil data berikutnya , kemudian membandingkan lagi sesuai atau tidak dengan data awal.
Langkah ini dilakukan terus sampai didapat data awal. Ketika penerima mendapatkan data yang sesuai dengan data awal, maka penerima akan mengambil data pertama
setelah data awal sebagai data pertama, data kedua setelah data awal sebagai data kedua, dan seterusnya hingga data ketiga. Dengan demikian tidak akan terjadi
kesalahan urutan data, walaupun ada penghalang sesaat. Setiap data mempunyai lebar pulsa high 1 tertentu. Untuk nilai data 0, maka lebar pulsa high yang dikirim adalah
± 1131 μ sekon. Programnya seperti berikut:
Mov 70h,0 Inc 70h
Kirim: Mov r0,70h
Acall data Sjmp kirim
data: loop1:
acall pulsa
Universitas Sumatera Utara
djnz r0,loop1 ret
pulsa: Clr P0.0 ; 1
μs
Mov r7,2 ; 1 μs
pls:
mov r6,255
; 1μs
djnz r6, ; 2x255=510μs
djnz r7,pls ; 2 μs =513x2=1026μs
mov r7,50 ; 1 μs
djnz r7, ; 2x50=100μs
ret ; 2μs
Total 1131 μs
Demikian juga seterusnya jika yang dikirimkan data 1 sd data 9, maka data ini akan ditambah dengan nilai 1, dan kemudian hasil penjumlahannya digunakan sebagai
banyaknya perulangan dalam pengiriman pulsa.
Sebagai contoh jika data yang dikirimkan adalah data 1, maka data ini akan ditambahkan 1 sehingga hasilnya menjadi 2. 2 inilah yang merupakan banyaknya
perulangan pengiriman pulsa. Jadi lebar pulsa untuk data satu ± 2 x 1.131 μs = 2.262
μs. Demikian pula untuk data-data yang lainnya.
Universitas Sumatera Utara
P3.7 AT89S51 5V
VCC
100
10uF
i _1
i
i _1
i
4.2.1 Rangkaian pemancar melalui infra merah
IC yang digunakan sebagai penerima infra merah adalah IC TSOP 1738. IC ini sering digunakan sebagai penerimareceiver remote control dari TV atau VCD.
Rangkaiannya tampak seperti dibawah ini:
TSOP1738
Gambar 4.4 Rangkaian penerima infra merah Pada rangkaian diatas digunakan resistor 100 ohm untuk membatasi arus yang masuk
pada rangkaian, sedangkan kapasitor 10 μF digunakan agar arus yang masuk ke IC
TSOP 1738 lebih stabil. IC ini mempunyai karakteristik yaitu akan mengeluarkan logika high 1 atau tegangan ± 4,5 volt pada outputnya jika IC ini mendapatkan
pancaran sinar infra merah dengan frekuensi antara 38 – 40 KHz, dan IC ini akan megeluarkan sinyal low 0 atau tegangan ± 0,109 volt jika pancaran sinar infra merah
dengan frekuensi antara 38 – 40 KHz berhenti, namun logika low tersebut hanya sesaat yaitu sekitar 1200
μs, setelah itu outputnya kan kembali menjadi high. Sifat inilah yang dimanfaatkan sebagai pengiriman data.
Output dari IC ini dihubungkan ke P3.7 pada mikrokontroler, sehingga setiap kali IC ini mengeluarkan logika low atau hing pada outputnya, maka mikrokontroller
dapat langsung mendeteksinya. Programnya sebagai berikut :
Universitas Sumatera Utara
Utama: mov 60h,0h
jb P3.7, nop
jnb P3.7, nilai:
inc 60h acall hitung
jb P3.7,nilai mov a,60h
mov b,10 div ab
dec a cjne a,10,Utama
Awalnya mikrokontroler akan memasukkan nilai 0 pada alamat 60h, kemudian menunggu sinyal low dari P3.7 yang terhubung ke output dari IC TSOP 1738. Jika ada
sinyal low, berarti ada data yang akan dikirim oleh pemancar, kemudian mikrokontroler akan mengabaikan sinyal low tersebut sampai datang sinyal high,
sinyal high inilah yang dihitung oleh mikrokontroller sebagai data yang masuk. Data yang masuk akan dibagikan dengan nilai 10. Hal ini dilakukan karena lebar data
pengirim 10 kali lebih besar daripada lebar data penerima, sehingga harus dibagi dengan 10. Kemudian hasilnya akan dikurangi dengan 1, hal ini karena pada saat
pengiriman, setiap data telah ditambah dengan nilai satu. Selanjutnya lebar data akan dibandingkan, apakah sama dengan 10 atau tidak, jika sama dengan 10 maka data ini
Universitas Sumatera Utara
merupakan data startbit, dengan demikian 3 data setelah ini adalah merupakan data karakter, dan akan diambil untuk ditampilkan karakternya. Namun jika data tersebut
tidak sama dengan 10, maka data ini bukan merupakan data startbit, program akan kembali ke awal sampai mendapatkan startbit. Setelah mendapatkan data startbit,
maka mikrokontroler akan mengambil data setelah data startbit tersebut, yang merupakan data dari nilai karakter yang dikirimkan oleh pemancar.
4.3 Pemrograman