Kamis, 04 Juni 2009

A. PENGANTAR
Pada era maju seperti sekarang ini, kehidupan manusia tidak akan lepas dari sistem otomasi yang membuat pekerjaan manusia akan lebih mudah. Oleh karena itu , banyak orang menciptakan suatu device atau alat yang membuat manusia terhindar dari kesulitan dan bahaya. Salah satu device yang telah diciptakan oleh manusia adalah sistem komunikasi yang bermedia cahaya infra merah.
Uraian berikut ini akan membahas suatu device yang menggunakan cahaya infra merah. Infra red receiver berbasis mikrokontroler adalah salah satu kemudahan yang diciptakan manusia untuk mengerjakan suatu pekerjaan yang menuntut kecepatan, ketepatan dan keamanan bagi manusia sendiri.
Receiver ini menggunakan remot kontrol sebagai transmiter atau pemancar cahaya infra merah dan sensor infra merah sebagai receiver atau penerima cahaya infra merah. Didalam rangkaian receiver terdapat mikrokontroler PIC16f877 yang difungsikan sebagai pemroses cahaya infra merah yang diterima.

B. CARA KERJA
1. Cara Remot Mengirimkan Data
Pada sistem ini, device yang digunakan untuk mengirimkan data adalah remot sony bertipe apapun. Data yang dikirim oleh remot sony, menggunakan media cahaya infra merah yang dipancarkan oleh LED infra merah yang ada didalam remot. Saat tombol pada remot ditekan, LED akan berkedip pada frekuensi ± 38,5 KHz. Frekuensi ini adalah frekuensi dari data pembawa (carrier) dan frekuensi dari tombol-tombol yang dihasilkan oleh rangkaian pembangkit pulsa yang ada didalam remot. Untuk dapat berkomunikasi dengan rangkaian receiver, remot harus dapat mengirimkan frekuensi atau sinyal pembawa data dalam waktu sebesar ± 2,4 ms.

Gambar B.1. keadaan remot tidak aktif

Gambar B.1 diatas menunjukkan remot tidak mengirimkan data. Hal ini dapat dilihat dari tidak adanya nyala LED infra merah. Sedangkan gambar B.2 dibawah ini menunjukkan remot yang tengah mengirimkan data. Dapat dilihat dengan adanya nyala LED infra merah pada remot.

Gambar B.2. nyala LED infra merah

Dalam proses pengiriman data dengan media infra merah, sinyal pembawa dari remot akan membawa kombinasi data yang dihasilkan oleh tombol yang ditekan. kombinasi ini adalah kombinasi dari data binari 1 yang membutuhkan waktu sebesar 1,2 ms (satu gelombang) dan data binari 0 yang membutuhkan waktu 0,6 ms (satu gelombang). Jadi, untuk mengirimkan satu gelombang data binari 1 dan satu gelombang data binari 0 akan membutuhkan waktu sebesar 4,2 ms.

Gambar B.3 pengiriman data oleh remot




Gambar B.3 diatas menunjukkan waktu yang diperluhkan dalam pengiriman data dari remot ke rangkaian receiver. Start pulse adalah data pembawa (carrier) yang memerluhkan waktu sebesar 2.4 ms. 7 bit pertama (dari kanan ke kiri) mengindikasikan tombol yang ditekan pada remot. Jika suatu tombol ditekan terus tanpa dilepas, data yang dikirimkan akan mempunyai interval waktu sebesar 20 ms agar rangkaian receiver tidak kebingungan membaca data yang dikirimkan.
2. Cara Rangkaian Receiver Menerima Data
Data yang dikirimkan oleh remot akan diterima oleh sensor infra merah yang banyak digunakan pada pesawat televisi. Sensor ini tidak hanya difungsikan sebagai penerima data, namun juga akan menstabilkan cahaya infra merah yang membawa data dari remot.
Gambar B.4 data yang diterima sensor
Pada gambar B.4 diatas, ditunjukkan diagram pewaktuan yang akan diterima oleh sensor tanpa adanya gangguan dari luar seperti noise dan yang lainnya. Setelah sensor menerima data, sensor akan memproses data dan menguatkannya sekaligus menstabilkan data agar dapat diterima dengan baik oleh mikrokontroler.
3. Cara Memproses Data
Data yang telah diterima dan diolah oleh sensor, akan dikirimkan ke mikrokontroler untuk diproses. Mikrokontroler akan memproses data yang masuk dan mengeksekusi program yang telah dituliskan dan didownload kedalam mikrokontroler. Semisal untuk penekanan tombol 1, remot akan mengirimkan data yang mengindikasikan bahwa tombol tombol 1 ditekan. Kemudian sensor akan menerima gelombang data yang dikirimkan remot dan mengirimkannya ke mikrokontroler. Mikrokontroler akan membaca data yang diterima dan memutuskan apa yang dilakukan selanjutnya menurut baris-baris program yang dituliskan yaitu menyalanya lampu LED pada portb.0.

C. ALOKASI INPUT dan OUTPUT
Maksud dari input disini adalah penekanan tombol pada remot dan output adalah tampilan hasil eksekusi dari mikrokontroler yang berupa lampu, fan, 8 buah dan LED.

Tombol 1 Fan on
Tombol 2 Lampu on
Tombol 3 Led 1 dan 2 on
Tombol 4 Led 3 dan4 on
Tombol 5 Led 5 dan 6 on
Tombol 6 Led 7 dan 8 on
Tombol 7 Mematikan semua led
Tombol 8 Lampu off
Tombol 9 Fan off

D. SKEMATIK RANGKAIAN

Komponen yang digunakan dalam rangkaian ini antara lain
Komponen Jumlah
Resistor 4k7 ohm (3)
Resistor 330 ohm (1)
Kapasitor 22 pf (2 )
Kapasitor 100 nf (2)
Kapasitor 1 uf (4)
Kapasitor 220 uf (2)
PIC 16f877 (1)
Max232 (1)
7805 (1)
TIP31 ( 2)
LED( 9 )
Dioda bridge (1 )
Konektor h2 (5)
Relay( 2 )
Respack 8 (1)
Switch (1 )
Infrared sensor (1)
Conector h4 dan db9 (1 )
Kristal (1)



E. LAY-OUT RANGKAIN

F. INSTRUKSI PROGRAM
device = 16f877
xtal = 20

hserial_baud = 115200 'communication to computer
hserial_rcsta = %10010000 'communication to computer
hserial_txsta = 100100 'communication to computer
hserial_clear = on 'communication to computer
dim time[4] as Word 'declaration for time variable
dim x as byte 'declaration for x variable
delayms 500
trisd = 000000 'output declaration for port b
'trisc = %11111100
trisb.7 = 1 'input declaration for port d.5

main:
repeat
time[0] = PULSIN portb.7, 0
until time[0] > 400
time[0] = PULSIN portb.7, 0 ' Measure/store data pulses.
time[1] = PULSIN portb.7, 0
time[2] = PULSIN portb.7, 0
time[3] = PULSIN portb.7, 0

if time[0]<222 x="1">222 and time[1]<222 x="2">222 and time[2]<222 x="3">222 and time[1]>222 and time[2]<222 x="4">222 and time[3]<222 x="5">222 and time[1]<222>222 and time[3]<222 x="6">222 and time[2]>222 and time[3]<222 x="7">222 and time[1]>222 and time[2]>222 and time[3]<222 x="8">222 then
x=9
else if time[0]>222 and time[1]<222>222 then
x=10
end if

if x=1 then
high portc.0

else if x=2 then
high portc.1

else if x=3 then
high portd.0
high portd.1

else if x=4 then
high portd.2
high portd.3

else if x=5 then
high portd.4
high portd.5

else if x=6 then
high portd.6
high portd.7

else if x=7 then
low portd

else if x=8 then
low portc.1

else if x=9 then
low portc.0

end if
hserout ["x= ",dec x,13]
delayms 50
goto main

Program diatas merupakan program dimana sinyal-sinyal data diterima oleh PIC 16f877 sekaligus output-output yang akan diaktifkan oleh PIC 16f877. Data yang diterima oleh PIC 16f877 dibagi kedalam 4 buah tempat (register). Register ini berfungsi untuk menghasilkan bermacam kemungkinan output. 4 buah register ini akan dapat menghasilkan 16 kemungkinan. Namun, pada sistem ini hanya 9 buah kemungkinan yang digunakan. Semisal suatu sistem memerlukan 30 buah output, maka data yang akan diproses dapat dimasukkan kedalam 6 buah register yang akan mempunyai 36 output.
Untuk dapat memasukkan program tersebut dari komputer ke dalam PIC 16F877 maka diperlukan rangkaian downloader dimana dalam rangkaian di atas mempergunakan max 232 yang kemudian dihubungkan dengan konektor DB9 ke komputer.


G.Lampiran (harap dibuka)