BAB III PERANCANGAN DAN PEMBUATAN SISTEM · PDF fileGambar 3.3 Skema rangkaian detektor infra...
-
Upload
truongnguyet -
Category
Documents
-
view
221 -
download
3
Transcript of BAB III PERANCANGAN DAN PEMBUATAN SISTEM · PDF fileGambar 3.3 Skema rangkaian detektor infra...
29
BAB III
PERANCANGAN DAN PEMBUATAN SISTEM DETEKSI
JARAK MENGGUNAKAN INFRA MERAH DAN
ULTRASONIK
3.1 Sistem Deteksi Jarak Menggunakan Infra Merah
3.1.1 Sistem Deteksi Infra Merah
Ada beberapa macam alat deteksi infra merah yang tersedia di pasaran, yang
paling buruk kualitasnya adalah photoresistor infra red, kemudian photodiode
yang merupakan dasar dari phototransistor, dan yang paling banyak dipakai yaitu
phototransistor, karena memiliki kepekaan yang jauh lebih tinggi daripada
photodiode dikarenakan oleh kemampuan penguatan arus yang dimiliki oleh
transistor itu sendiri.
Untuk keperluan deteksi ini, saya menggunakan produk dari Fairchild
Semiconductor berupa phototransistor untuk infra merah dengan tipe L14G3.
Gambar 3.1 Fototransistor L14G3 (Fairchild Semiconductor)
30
Gambar 3.2 Karakteristik elektronik dari fototransistor L14G3 (Fairchild Semiconductor)
Phototransistor yang banyak terdapat di pasaran merupakan bentuk integrated dari
bentuk sederhana dari phototransistor ini, yang banyak dipakai untuk remote
control TV atau AC. Phototransistor tersebut didalamnya sudah dilengkapi dengan
komparator dan signal conditioner yang lain, sehingga tegangan keluarannya
hanya low dan high saja. Oleh karena itu, saya pakai phototransistor yang masih
original dalam sistem ini.
Komponen ini memiliki sensitivitas yang tinggi, terbukti bahwa ia menghasilkan
tegangan maksimum saat dihadapkan pada langit berawan di siang hari. Hal itu
akan menjadi gangguan yang besar jika nantinya robot digunakan di daerah yang
31
cukup terang atau memiliki intensitas infra merah yang cukup tinggi. Untuk
mengatasinya, saya tambahkan sedikit modifikasi dalam pengemasan berupa
filtering sinar infra merah menggunakan tutup cukup gelap.
L14G3
500Ω1nF
10kΩ1nF
+5 V
Gd
V out
(AN0)
Gambar 3.3 Skema rangkaian detektor infra merah
Daerah deteksi dari phototransistor yang saya gunakan memiliki jangkauan sudut
±10° di depan detektor, sehingga cukup baik untuk mendeteksi objek di depan
detektor, tanpa mengalami banyak gangguan yang disebabkan oleh infra merah
dari arah lain.
Untuk mengurangi noise, rangkaian detektor ini diberi high pass filter untuk
frekuensi diatas 10 kHz, tentu saja sinyal yang dipancarkan oleh LED merupakan
sinyal dengan frekuensi lebih tinggi dari 10 kHz, yaitu 40 kHz.
Nilai hasil keluaran ini merupakan nilai analog yang setara dengan intensitas
cahaya pada daerah tertentu. Hasil analog ini kemudian masuk ke dalam ADC
untuk diolah secara digital.
32
Berikut adalah skema rangkaian deteksi jarak menggunakan infra merah secara
lengkap.
a1 1b12
Gd
0
9 v7805
100nF1µF
100 nF
L14G3
500Ω1nF
10kΩ1nF
R 330Ω
IR LED
TR 1015
R 5,6 kΩ
RA0, AN02
RA13
4
5
27
26
25
24
6
RA57
8Vss/Gd
9OSC1
RB0
Vdd
23
22
21
20
OSC210
RC011
12
13
Vss
RC7
19
18
17
16
MCLR1
RB728
RC314
RC415
4 MHz
a1
b2
3c
4d
Vcc
e5
f6
7g
8h
a1
b2
3c
4d
Vcc
e5
f6
7g
8h
a1
b2
3c
4d
Vcc
e5
f6
7g
8h
R 330Ω
R 5,6 kΩ
TR 1015
7- segment
PIC 16F876
8.8.8.
Gambar 3.4 Skema rangkaian lengkap untuk deteksi jarak menggunakan infra merah
3.1.2 Pengiriman sinyal infra merah
Gambar 3.5 Skema rangkaian transmitter infra merah
33
Untuk menghasilkan sinyal infra merah yang cukup kuat, saya menggunakan 2
LED infra merah yang disusun paralel satu sama lain dengan arah sejajar dengan
arah deteksi oleh fototransistor. Konfigurasinya adalah sebagai berikut :
IR LED konvensional memiliki wilayah transmisi optimal pada sudut kurang dari
10°, meskipun begitu, intensitas yang dipancarkan dari sisi-sisinya masih sebesar
kira-kira sepersepuluh intensitas yang dipancarkan ke arah depan. Untuk itu, maka
LED infra merah ini perlu diberi shielding selubung dan juga belakang, sementara
bagian depan terbuka bebas. Shielding yang digunakan adalah bahan yang bersifat
menyerap hampir semua sinar infra merah yang diterimanya. Selotip elektrik
warna hitam sudah mencukupi untuk keperluan tersebut.
Nyala dan mati dari IR diatur oleh mikrokontroller, namun besar tegangan high
yang dihasilkan oleh mikrokontroller tidak cukup besar untuk menghasilkan
intensitas infra merah yang diharapkan. Oleh karena itu, fungsi transisitor sebagai
saklar ditambahkan sebagai pemberi power untuk LED. Sumber power langsung
diambil dari sumber pusat sebesar +5V dan dialirkan pada led dan resistor led
dengan mengatur low high pada Base transistor NPN yang digunakan. Sinyal
dikirimkan melalui IR LED dalam bentuk pulsa-pulsa 40kHz.
fototransistor
Shielding
Depan
IR LED
34
3.1.3 Pengolah Sinyal
Pengolahan sinyal baik dalam segi pengiriman maupun penerimaan analog
dilakukan dalam mikrokontroller PIC 16F876. Di dalam mikrokontroller ini,
sinyal analog hasil pantulan oleh objek dari sinyal transmisi IR LED diolah
bersama-sama dengan nilai sinyal ambien untuk menghitung jarak objek terhadap
sistem. Disamping menghitung jarak, PIC juga mengatur sistem display pada 7-
segmen. Lebih lengkapnya dari proses-proses ini akan di jelaskan pada sub bab
Pengolahan Sinyal.
3.1.4 Display
Gambar 3.6 Skema rangkaian display 7-segmen
Hasil pengolahan sinyal kemudian dikirimkan pada sistem display LED 7-
segment dalam 3 digit yang langsung menunjukkan hasil pengukuran jarak oleh
PIC. Untuk keperluan ini, saya menggunakan 7-segmen common anode yang
menggunakan 1 input power untuk 8 keluaran pada 7-segmen.
35
Proses display ini dilakukan secara bergantian untuk tiap 7-segmen, menggunakan
8 bit data dan 3 bit pengatur nyala masing-masing 7-segment. Prosesnya adalah
sebagai berikut :
- Misalkan nilai jarak hasil pengolahan adalah 15,2 cm, maka ketiga angka itu
harus dikirim masing-masing ke 3 7-segmen yang dipakai.
- Angka pertama adalah satu, yang dikirim pada ketiga 7-segmen sekaligus,
agar yang menyala hanya 7-segmen paling kiri, maka hanya 7-segmen paling
kiri saja yang diberi power melalui transistor yang diatur oleh 3 bit
pengendali display.
- Angka kedua dikirimkan pada 7-segmen tengah, untuk itu, 7-segmen sebelah
kiri dan kanan tidak diberi power sedangkan 7-segmen tengah dinyalakan.
- Proses ini dilanjutkan untuk 7-segmen paling kanan, kemudian kembali ke
yang paling kiri dan terus berkesinambungan untuk menampilkan hasil
pengukuran.
3.1.5 Power Supply
Kebutuhan power untuk sistem ini dipenuhi dengan memberikan beda potensial
DC yang konstan menggunakan regulator DC 7805. Rangkaiannya adalah sebagai
berikut :
Gambar 3.7 Skema rangkaian power supply
36
3.1.6 Pengolahan Sinyal
Sinyal dari detektor hanya berupa besar tegangan yang bersesuaian dengan
intensitas infra merah yang diterima oleh detektor. Untuk itu, pengolahan
intensitas tersebut dilakukan melalui proses di bawah ini, dengan flowchart
sebagai berikut :
Gambar 3.8 Flowchart deteksi jarak menggunakan infra merah
Proses dimulai dari inisialisasi PIC, inisialisasi ini berisi inisialisasi PORT input-
output pada PIC yang digunakan, inisialisasi proses ADC dan pengaturan
konversinya itu sendiri, kemudian dialnjutkan dengan pengaturan pola tampilan
serta pengaturan-pengaturan lain yang diperlukan.
Proses berikutnya adalah pengiriman pulsa 40 kHz, atau sinyal dengan perioda 25
µs. Dari 25 µs ini, 12 µs dipakai untuk mengirim nilai high dan 13 µs untuk nilai
low nya. Jumlah pulsa 40 kHz yang dikirim adalah sebanyak 60 pulsa, atau
37
selama 60 x 25 µs= 1500 µs=1,5 ms. Nilai intensitas pantulan diambil pada pulsa
ke 30 dengan mengaktifkan ADC dan berakhir setelah proses konversi selesai
dilakukan. Proses kemudian melanjutkan sisa pulsa yang belum terkirim. Nilai
intensitas dari ADC ini memiliki lebar 10 bit dengan nilai tertinggi 1023
didapatkan jika tegangan yang masuk ke ADC = tegangan power positif PIC
(Vss), dan low saat tegangan ADC = ground. Nilai ini kemudian disimpan di salah
satu register dalam PIC.
Setelah 60 pulsa 40 kHz selesai dikirim, dibuat jeda sebelum mengukur intensitas
ambien. Jeda ini dibuat karena LED memiliki waktu pengosongan/penghentian
aliran arus. Setelah jeda, ADC kembali diaktifkan untuk mengambil nilai
tegangan saat LED padam, sehingga nilai yang terukur benar-benar nilai intensitas
infra merah ruangan.
Proses berikutnya adalah mengolah kedua data yang telah didapat di atas.
Prosesnya adalah sebagai berikut :
1. Nilai ambien dikurangkan dari nilai maksimum yang mungkin terukur, dalam
hal ini yaitu nilai 1023. Tujuannya adalah untuk mendapat intensitas murni
dari LED. Ini dimaksudkan agar ketika sistem dipakai di lingkungan yang
memiliki intensitas Infra merah yang berbeda-beda, sistem dapat menghitung
berapa kekuatan intensitas dari LED relatif terhadap intensitas ambien.
2. Nilai refleksi kemudian dikurangkan dari nilai ambien, hal ini untuk
mendapat intensitas mutlak dari refleksi itu sendiri.
38
3. Setelah mendapat kedua nilai diatas, proses berikutnya adalah mengaitkan
kedua nilai dengan aturan fisika yang berhubungan. Intensitas cahaya akan
berkurang seiring kuadrat jarak dari sumber, sehingga persamaan sederhana
berikut bisa diterapkan :
rI
IkR 0*=
(3.1)
Dengan R sebagai jarak terukur, I0 merupakan intensitas LED, dan Ir
merupakan intensitas pantul. Nilai k akan dihitung kemudian karena nilai k
ini akan bergantung pada daya absorpsi infra merah oleh bahan.
4. Proses berikutnya adalah menampilkan nilai terukur yang dilanjutkan dengan
mengulang proses dari pengiriman sinyal 60 pulsa 40 kHz lagi dan
seterusnya.
Untuk meminimalisir noise dari lingkungan, dapat digunakan lebih banyak IR
LED sehingga nilai intensitasnya selalu lebih besar dari intensitas lingkungan,
namun sebaliknya, untuk fototransistornya sendiri perlu ditambahkan shielding
yang lebih tebal, karena fototransistor memiliki batas maksimum intensitas yang
dapat menghasilkan perubahan pada tegangan keluaran.
39
3.2 Sistem Deteksi Jarak Menggunakan Ultrasonik
Alat ukur jarak ini menggunakan modul transmitter dan receiver ultrasonik
dengan memanfaatkan pantulan gelombang ultrasonik pada bidang. Riset di
sensor ini telah lama berkembang, meningkatkan kemampuan dari modul sensor
sehingga menghasilkan nilai baca yang cukup akurat. Alat yang saya buat
merupakan salah satu bentuk dari teknologi tersebut.
Secara mendasar, alat ukur jarak menggunakan modul sensor ultrasonik mengukur
waktu pantul dari transmitter oleh bidang yang dibaca oleh receiver dan dilakukan
oleh mikroprosessor.
Gambar 3.9 Cara kerja sensor ultrasonik (Seichi Innoue)
Jarak yang terukur didefinisikan oleh :
.
2
v td =
(3.2)
40
Yang kemudian harus dipenuhi adalah cara agar pengukuran tersebut dapat
setepat mungkin, pasalnya ada beberapa masalah mendasar yang perlu dikalibrasi,
yaitu :
1. Kecepatan bunyi di udara tidak selalu tepat
2. Sinyal ultrasonik dari sensor memiliki amplitudo yang kecil
3. Noise dari gelombang akustik sekitar alat
4. Membedakan antara gelombang langsung dari transmitter dengan gelombang
dari pantulan terhadap bidang
5. Mengolah data dan menampilkan
Berikut ini akan disampaikan penjelasan mengenai komponen-komponen
hardware per blok kerja dalam sistem sensor ini.
41
Gambar 3.10 Skema rangkaian deteksi jarak menggunakan ultrasonik
42
3.2.1 Receiver untuk sinyal ultrasonik
1. Modul receiver dan penguatan sinyal dari modul tersebut
Sensor ultrasonik yang saya gunakan adalah sepasang transmitter dan receiver
ultrasonik umum.
Gambar 3.11 Penampang sensor ultrasonik (NICCERA, Co. Ltd)
Spesifikasi dari sensor ini yaitu :
1. Frekuensi kerja 40 kHz
2. Sound pressure level < 115 dB
3. Sensitivitas < -64 dB
4. Ukuran : diameter 16,2 mm , tinggi 12,2 mm, interval 10 mm.
Berikut spesifikasinya dan bentuknya.
43
Gambar 3.12 Bentuk-bentuk sensor dari NICCERA (NICCERA, Co. Ltd)
44
Output dari sensor ini sangat kecil, perlu dikuatkan 1000 kali. Penguatan 1000
kali tersebut menggunakan rangkaian penguat berikut.
Gambar 3.13 Receiver dan penguatan 1000 kali
Penguatan dilakukan melalui 2 tahap untuk menghindari noise berlebih. Bagian
pertama adalah penguat pembalik 100 kali dan yang kedua 10 kali masing-masing
menggunakan penyaring noise rangkaian RC. Secara umum, op-amp bekerja
dengan menggunakan power positif dan negatif dari power supply, untuk
rangkaian ini digunakan input positif saja, sementara Vee ditanahkan. Dengan
menggunakan tegangan bias 4,5 volt untuk input positifnya, sehingga tegangan
AC dapat dikuatkan dengan tegangan pusat 4,5 volt saja. Jika menggunakan op-
amp dengan negative feedback, maka tegangan antara antara input terminal positif
dan input terminal negatif manjadi kira-kira sama besar (virtual grounding).
Tujuan teknik ini adalah agar baik sisi positif maupun sisi negatif dari input AC
dari receiver dapat dikuatkan dengan menggunakan tegangan bias, selain itu,
untuk mencegah distorsi pada input AC.
45
Op-amp yang digunakan adalah LM-833N, yaitu IC low noise operational
amplifier, pemilihan ini dikarenakan penguatan yang dilakukan sebesar 1000 kali.
2. Signal conditioning
Gambar 3.14 Dioda dan penyearah
Agar dapat masuk ke tahap-tahap pengolahan sinyal berikutnya, maka sinyal AC
dengan frekuensi tinggi dari receiver diubah menjadi sinyal DC. Penyearahan ini
menggunakan dioda sebagai penyearah. Dioda yang digunakan adalah shottky
barrier dioda yang memiliki karakteristik frequensi tinggi sehingga dapat
digunakan untuk memotong sinyal 40 kHz.
3. Bagian pendeteksi sinyal
Pendeteksian dari sinyal input menggunakan prinsip kerja komparator.
Gambar 3.15 LM358 dan komparator
46
Prinsip kerja dari komparator ini adalah dengan membandingkan 2 inputnya, input
negatif adalah input konstan dari power supply (Vrf) dan input positif adalah input
dari receiver ultrasonik yang sudah dikondisikan. Jika tegangan input positif lebih
besar daripada input negatif (Vrf) maka keluarannya sama dengan tegangan input
power pada komparatornya (nilai H=Vcc=9 volt), dan jika sebaliknya, maka
keluarannya adalah 0 volt (nilai L). Besar Vrf ini adalah :
( . ) (47 .9 )0,4
( ) (1 47 )
RbVcc kOhm voltVrf volt
Ra b MOhm kOhm= = =
+ + (3.3)
Dengan menambahkan resistor ditanahkan pada outputnya, maka output 9 volt ini
dikecilkan menjadi kira-kira 5 volt sehingga dapat masuk ke pengolah digital.
Komparator yang digunakan adalah LM-358, yaitu op-amp dengan input power
tunggal low power amplifier.
47
4. Penahan sinyal input
Bagian ini berfungsi untuk mencegah pembacaan sinyal pada saat yang tidak
tepat, yaitu untuk menghindari pembacaan langsung sinyal dari transmitter yang
sedang mentransmisi sinyal dan bukanlah sinyal hasil pantulan terhadap bidang.
Gambar 3.16 IC 4011 dan RS-FF
Dengan menggunakan rangkaian D-type flip-flop (RS-FF) seperti gambar diatas,
sinyal 5 volt yang masuk ke A hanya bisa keluar di D jika nilai C adalah high (H).
Waktu kemunculan H dari C ini diatur oleh mikroprosessor yaitu setelah transmisi
selesai dilakukan dan kembali nol (L) jika sistem akan memulai transmisi sinyal
lagi. Keluaran dari bagian D akan masuk sebagai capture input pada PIC 16F877
melalui CPP1, sedangkan nilai C adalah keluaran dari port A5 (RA5) dari PIC.
Untuk rangkaian flip-flop tersebut, digunakan IC NAND 4 gerbang 2 input jenis
4011B.
48
3.2.2 Transmitter sinyal ultrasonik
Sinyal ultrasonik dibangkitkan menggunakan rangkaian berikut,
Gambar 3.17 IC 4069 dan transmitter ultrasonik
Perintah transmisi dikeluarkan oleh mikroprosessor melalui gerbang NAND dan
tanpa NAND untuk membentuk suatu sinyal On-Off pada ransmitter. Dua sistem
inverter dipasang secara parallel digunakan karena saat pengiriman terjadi
penguatan daya listrik. Transistor digunakan untuk mengubah tegangan +9 volt
dari sumber menjadi + 5 volt agar dapat ke C-MOS NAND 4069. Kapasitor
berfungsi untuk menggabungkan input dari 2 sistem inverter sehingga tegangan
yang diterima transmitter adalah 2 kali lipat dari sinyal inverter.
Gerbang NAND memanfaatkan gerbang dari IC 4011B untuk RS-flip-flop di atas,
sedangkan inverter menggunakan IC NOT 6 gerbang 4069.
49
3.2.3 Display system
Gambar 3.18 Sistem 7 segmen dan TR A1015
Untuk keperluan display, digunakan 3 buah led 7-segmen berjenis Anode
Common Diode, yang menyala jika terjadi grounding dan mendapat input positif
pada pin 3 atau 8. Transistor digunakan untuk memberi cukup tegangan untuk
operasi 7-segmen. Nilai yang ditunjukkan diberikan oleh port B0-B6 dari
mikroprosessor. Resistor digunakan untuk mengurangi tegangan yang masuk ke
7-segmen display.
Transistor yang digunakan untuk mengendalikan bagian anode dari 7-segment ini
adalah tipe PNP A1015, sedangkan 7-segment yang digunakan adalah tipe SM4-
1050 1k dengan dimensi 18.8 mm x 12 mm x 8 mm.
50
3.2.4 Kalibrator temperatur
Gambar 3.19 Proses penyesuaian nilai terukur
Fitur ini bagian A/D converter built in di dalam mikroprosessor yang digunakan
(PIC16F877). Dengan mengukur tegangan masukan yang dipengaruhi resistansi
luar yang sensitif terhadap temperatur, dan mengambil nilai digitalnya sebagai
referensi untuk memilih pembagi. A/D converter ini bekerja pada 0-5 volt sebesar
10 bit. Sebagai contoh, tegangan masuk ke ADC menghasilkan nilai digital 54
(3A h) pada 3 bit awal, ini digunakan sebagai penyebut untuk membagi nilai yang
dihasilkan pada perhitungan awal yang disimpan di salah satu register di dalam
mikroprosessor. Bit-bit setelah 3 tidak digunakan karena meskipun digunakan,
tetap saja hasilnya akan dipotong di bagian desimalnya oleh sistem hitung digital
ini, sehingga membuat perhitungan tidak efisien.
51
3.2.5 Resonator 4 Mhz
Resonator ini digunakan untuk meningkatkan resolusi dari alat. Untuk
menghasilkan 1 loop operasi, dengan reonator ini dihasilkan waktu sebesar 65,535
milisekon (1 operasi selama 1 mikrosekon) yang artinya cukup untuk membaca
jarak sejauh :
2 . 340 / 65.535 22,281d v t m s ms m= = × = (3.4)
3.2.6 Power supply
Gambar 3.20 Power supply beserta IC 7805 dan 78L09
Input untuk keseluruhan sistem ini adalah satu sumber +12 Volt, namun, untuk
mengoperasikan komponen aktif, dibutuhkan tegangan + 5 volt dan + 9 volt.
Untuk itu, digunakanlah regulator tegangan 7805 yang mengubah tegangan +12
volt menjadi + 5 volt, dan IC 78L09 yang mengubah tegangan +12 volt menjadi +
9 volt.
52
IC yang digunakan untuk regulator 5 volt dari 12 volt DC adalah IC 7805 yang
memiliki output arus maksimum 1 ampere, dan untuk regulator 9 volt
menggunakan 78L09 dengan maksimum arus keluaran 100 mA.
3.2.7 Pengolahan Sinyal
Berikut merupakan flowchart software dari sistem deteksi jarak menggunakan
ultrasonik.
53
Mulai
[ Inisialisasi ]
Inisialisasi port
Inisialisasi selang waktu transmisi
(TMR0)
Inisialisasi pencatat waktu
penangkapan sinyal (TMR1)
Inisialisasi ADC
Inisialisasi selang waktu display
Inisialisasi interupsi global
Akhiri interupsi dari penghitung
waktu transmisi
Ada deteksi pada perioda
sebelumnya?
Matikan detektor
Mulai pencatat waktu
penangkapan sinyal
Kirim sinyal ultrasonik 0,5 ms
Display Error
Ambil nilai koreksi dari ADC
Matikan interupsi dari TMR1
(1 ms)
Detektor diaktifkan
Proses Deteksi
Proses deteksi
Matikan flag interupsi
masuknya sinyal
Ambil nilai dari TMR1
Ambil koreksi ADC
Hitung jarak
Konversi nilai biner
menjadi desimal
Olah data ratusan,
puluhan dan satuan
menjadi data 7 segmen
Tampilkan
hasil
pengukuran
Return
Proses display
Terjadi deteksi?
Ada interupsi TMR0?
Proses Display
Return
Gambar 3.21 Proses kerja perangkat lunak untuk ultrasonik
54
Proses secara umum
Gambar 3.22 Proses transmisi-deteksi
Alur kerja mikroprosesor kemudian dijelaskan dalam 7 poin berikut.
3.2.7.1 Inisialisasi
Proses inisialisasi ini dimulai dengan inisialisasi port PIC yang akan digunakan,
yaitu port A0 digunakan untuk ADC kalibrator temperatur, RC2 untuk membaca
sinyal (CPP1) dan lainnya untuk output. Berikutnya adalah inisialisasi selang
waktu antar transmisi, yang diatur menggunakan modul timer 0. Dengan mengatur
bahwa satu kali increment membutuhkan 256 proses, akan didapat waktu
overflownya sebanyak 8-bit dikali 256, atau 256 x 256 = 65536. Jumlah proses ini
akan setara dengan 65.536 µs atau 65,536 ms karena jika menggunakan resonator
4 MHz untuk PIC, 1 proses dilakukan selama 1 µs.
55
Berikutnya adalah inisialisasi penangkapan sinyal. Alat ini bekerja dengan cara
mendeteksi lama selang waktu antara transmisi dan deteksi, untuk keperluan itu,
digunakan modul timer1 dari PIC dengan sumber interupsi luar (melalui CCP1,
RC4). Timer 1 ini akan dinyalakan saat pulsa ditransmisikan dan akan berakhir
jika ada nilai high di CCP1. Waktu yang terukur akan dicatat pada register milik
timer 1.
Berikutnya adalah inisialisasi ADC (Analog To Digital Converter), dengan
mengatur bagaimana PORT A bekerja sebagai input, yaitu dengan membuat
PORT A0 sebagai input analog sementara lainnya menjadi I/O digital. Proses ini
juga mengatur bagaimana cara ADC nya bekerja dan mencatat hasilnya.
Inisialisasi berikutnya adalah selang waktu tampilan. Alat ini menggunakan 3 7-
segment yang dikontrol oleh 3 pin pada PORT A secara bergantian. Oleh karena
itu, lama selang waktu dari tiap tampilan menentukan kualitas tampilannya, waktu
10 ms per 7-segmen sudah cukup untuk memberikan tampilan yang jelas pada
ketiga 7-segmen, waktu ini diatur menggunakan timer 2 dengan interupsi internal.
Bagian inisialisasi yang utama agar semua inisialisasi di atas dapat bekerja adalah
inisialisasi interupsi global, yaitu bagaimana urutan interupsi yang diperbolehkan
dan bagaimana alat bertindak untuk tiap interupsi.
3.2.7.2 Proses interupsi
Jika terjadi interupsi, baik dari TMR0, TMR1, TMR2 maupun CPP, maka flag
interupsi dari timer-timer dan CPP tersebut di cek, jika nilainya H (terjadi
56
interupsi) lanjutkan ke langkah yang bersesuaian. Flag GIE (aktivasi interupsi
global) otomatis di low kan setelah terjadi interupsi. Jika flag-flag interupsi tidak
ada yang H, maka kode error di kirim ke setiap 7 segmen, kemudian
mikroprosesor berhenti bekerja dan harus di reset. Setelah proses untuk interupsi
tertentu selesai dilakukan, proses dikembalikan ke keadaan idle menunggu
interupsi selanjutnya, GIE secara otomatis di set H kembali.
3.2.7.3 Proses pengiriman sinyal ultrasonik
Proses pengiriman sinyal ini dimulai dengan menonaktifkan interupsi untuk timer
0 untuk mencegah terjadi interupsi saat pengiriman sinyal ultrasonik. Port
C2/CPP1 yang berfungsi sebagai penerima input dari receiver harus di cek, jika
selama selang waktu deteksi hingga mulai kirim sinyal lagi masih tidak terjadi
deteksi CPP1 L, maka tak ada perhitungan yang menggambarkan pengukuran
jarak gagal dilakukan, sehingga perlu dikeluarkan informasi melalui display. Jika
CPP1 H, maka diteruskan ke proses detect_off. Proses berikutnya adalah
mengatur RS-FF sehingga RS-FF (Reset-set flip-flop) tidak dapat mengeluarkan
nilai H, dalam kata lain, mencegah proses deteksi. Kemudian, pengukuran waktu
deteksi mulai dijalankan, dengan cara semua flag interupsi di L kan, CCP1CON di
setting sehingga penangkapan sinyal jika CCP1 berubah dari L ke H. Interupsi
pada CCP 1 diperbolehkan dengan mengeset bit ke 2 dari PIE1, dan flag interupsi
CCP1 di PIR1 harus dibuat siap (L).
57
Setelah semua keadaan di atas dipenuhi, barulah proses pengiriman sinyal 40 kHz
dilakukan. Perioda dari satu sinyal haruslah 1/40 kHz = 25 µs, atau setara dengan
25 proses, sehingga waktu untuk mengirim data H dan L secara bergantian
haruslah 12,5 µs atau 12~13 proses, sehingga pada proses pulse ditambahkan
beberapa operasi diam (tanpa operasi). Jumlah gelombang yang dikirim sebanyak
20 gelombang, sehingga lama pulsa = 20 x 25 µs = 0,5 ms.
Setelah pulsa dikirim, kemudian dilakukan pengambilan data kalibrasi dari ADC.
Untuk mengambil data dari ADC, bit GO pada ADCON0 harus pada keadaan set,
yaitu setelah konversi analog to digital selesai dilakukan. Nilai high bit hasil dari
ADC disimpan di register ADRESH, kemudian dipindahkan ke alamat s_adj.
Nilai high bit ini kemudian digeser menjadi 3 nilai low bit, misal nilai awal
11010000 digeser menjadi 00000110 dan dijumlahkan dengan d’54’ atau
b’00110110’, dan hasil penjumlahannya merupakan nilai pembagi untuk revisi
nilai jarak terukur dari CCP1. Lama proses pengambilan data ADC ini kurang dari
20 µs, sehingga dibutuhkan waktu tambahan sebagai selang antara transmisi dan
deteksi selama 1 ms. Setelah selang waktu tersebut, barulah interupsi untuk timer
0 diaktifkan, atau proses deteksi sudah boleh diterima dengan cara mengeset RS-
FF dalam keadaan aktif.
3.2.7.4 Proses interupsi penangkapan sinyal
Jika terjadi penangkapan sinyal, maka flag interupsi CCP1 menjadi high, dan
proses dilanjutkan pada proses yang bersesuaian dengan interupsinya, dalam hal
58
ini dilanjutkan pada proses penangkapan sinyal. Flag interupsi CCP1 di L kan,
dan fungsi tangkap dinonaktifkan dengan men-clear kan CCP1CON.
Nilai yang dicacah oleh TMR0 sebanding dengan selang waktu antara pengiriman
sinyal dengan interupsi penangkapan sinyal. Sebagai contoh, jika jarak yang
terukur adalah 1 m, dan kecepatan bunyi di udara adalah 343 m/s, maka selang
waktu antara pengiriman dan penerimaan sinyal adalah t= 2 x 1/343 = 5831
mikrosekon, dan nilai cacahan di TMR0 adalah 5831. Dengan membagi nilai
tersebut dengan 58, didapatlah jarak kira-kira 100 cm. Namun nilai 58 ini perlu
disesuaikan dengan kondisi luar, sehingga perlu dikalibrasi dari nilai yang didapat
dari ADC. Nilai high bit dari ADC ditambah d’54’ pada poin bagian 2.2.5 no 6 di
atas yang kemudian digunakan sebagai pembagi nilai dari TMR0. Proses
pembagian di atas adalah pembagian untuk bilangan biner oleh mikroprosesor,
berupa pembagian 16 (8 bit CCPR1H dan 8 bit CCPR1L) bit oleh 8 bit (nilai
kalibrasi ADC yang disimpan di s_adj 8 bit). Hasilnya disimpan di p_counth dan
p_countl.
Setelah proses deteksi, dilakukan juga proses persiapan tampilan. Proses ini dibagi
menjadi 3 bagian, masing-masing untuk mengatur nilai pada 7 segmen pertama,
kedua dan ketiga yang masing-masing menunjukkan nilai ratusan, puluhan dan
satuan dalam cm. Fungsi proses ini untuk merubah nilai biner 16 bit hasil
perhitungan menjadi nilai desimalnya, misalkan 11101010 adalah hasil
perhitungan dari pembagian nilai TMR0 dengan nilai dari ADC, memiliki bentuk
59
desimal 234. Angka 2 ini disimpan di digit_h, 3 di digit_t dan 4 di digit_u. Jika
nilai untuk digit_h didapati ≥ 9, maka akan muncul display eror.
3.2.7.5 Proses tampilan di LED
3 digit yang ditampilkan, hanya dapat ditampilkan bergantian, karena ke 3 digit
tersebut hanya dikendalikan oleh RB0-RB6, dan tidak oleh 3 port sekaligus,
sehingga perlu 3 kali proses display untuk digit yang berbeda yang di kendalikan
oleh RA1-RA3. Bagian c_digit berfungsi untuk mengubah data dari hasil poin
2.2.6 no 3 menjadi bentuk yang sesuai pada LED. Digit_cnt adalah nilai yang
akan ditampilkan (lihat aliran data pada inisialisasi display).