Meminjam teknik echo sounder yang dipakai untuk mengukur kedalaman laut, bisa dibuat alat pengukur jarak dengan ultra sonic. Pengukur jarak ini memakai rangkaian yang sama dengan Jam Digital dalam artikel yang lalu, ditambah dengan rangkaian pemancar dan penerima Ultra Sonic.
Prinsip kerja echo sounder untuk pengukuran jarak digambarkan dalam Gambar 1. Pulsa Ultrasonic, yang merupakan sinyal ultrasonic dengan frekwensi lebih kurang 41 KHz sebanyak 12 periode, dikirimkan dari pemancar Ultrasonic. Ketika pulsa mengenai benda penghalang, pulsa ini dipantulkan, dan diterima kembali oleh penerima Ultrasonic. Dengan mengukur selang waktu antara saat pulsa dikirim dan pulsa pantul diterima, jarak antara alat pengukur dan benda penghalang bisa dihitung.
Gambar 2 merupakan Rangkaian Jam Digital dalam artikel lalu yang direvisi untuk keperluan ini. Titik desimal pada tampilan satuan dinyalakan dengan tahanan R8. Setiap kali tombol Start ditekan, AT89C2051 membangkitkan pulsa ultrasonic pada Pin P3.4 yang dipancarkan dengan rangkaian Gambar 3, selanjutnya lewat pin P3.5 yang terhubung ke rangkaian penerima ultrasonic di Gambar 4, sambil mengukur selang waktu AT89C2051 memantau datangnya pulsa pantul.
Hasil pengukuran waktu itu, dengan sedikit perhitungan matematis ditampilkan di sistem penampil 7 ruas sebagai besaran jarak, dengan satuan centimeter dan 1 angka dibelakang titik desimal.
Klik pada gambar untuk melihat ukuran sebenarnya
Rangkaian Kontrol & Tampilan
Rangkaian Pemancar Ultra Sonic
Rangkaian Penerima Ultra Sonic
Potongan Program 2 - Mengukur waktu pantulan ultra sonic
1 SET TR1 Hidupkan untaian pencacah
2 SampaiNol:
3 JNB TF1,SampaiNol Tunggu selama TF1 masih =1
4 ACALL PulsaUltraSonic Bangkitkan pulsa Ultrasonic
5 TungguPantulan:
6 JB TF1,Selesai TL1/TH1 melimpah? Ya, stop
7 JB P3.5,TungguPantulan Tunggu selama P3.5 =1
8 Selesai:
9 CLR TR1 Matikan untaian pencacah
Potongan Program 3 - Menghitung jarak
1 CLR A
2 MOV Operand,TL1
3 MOV Operand+1,TH1
4 MOV Operand+2,A
5 MOV Pengali,#10
6 MOV Pengali+1,A
7 MOV Pengali+2,A
8 ACALL Perkalian HasilKali := 10 * TL1_TH1
9 ;
10 MOV R0,#HasilKali
11 MOV R1,#Operand
12 ACALL Copy Copy-kan isi HasilKali ke Operand
13 MOV Pembagi,#58
14 MOV Pembagi+1,#0
15 MOV Pembagi+2,#0
16 ACALL Pembagian HasilBagi := (10*TL1_TH1) / 58
Potongan Program 4 - Jarak dalam bentuk biner dirubah ke desimal untuk ditampilkan
1 MenampilkanHasil:
2 ACALL HapusTampilan
3 ;
4 MOV DPTR,#AngkaPembagi Mulai dengan 1000
5 MOV R7,#4 Maksimum 4 digit
6 MOV R4,#RuasRatusan
7 CLR F0 Belum pernah simpan
8
9 MOV R0,#HasilBagi
10 MOV R1,#SisaBagi
11 ACALL Copy
12 DigitBerikutnya:
13 MOV R0,#SisaBagi
14 MOV R1,#Operand
15 ACALL Copy
16
17 * Ambil AngkaPembagi dari Tabel
18
19 CLR A
20 MOV Pembagi+2,A
21 MOVC A,@A+DPTR
22 INC DPTR
23 MOV Pembagi,A
24
25 CLR A
26 MOVC A,@A+DPTR
27 INC DPTR
28 MOV Pembagi+1,A
29
30 ACALL Pembagian SisaBagi dibagi 1000; 100; 10 dan 1
31
32 MOV A,HasilBagi HasilBagi=0?
33 JNZ SimpanRuas Tidak, jadikan simpan ruas
34 JNB F0,Berikutnya Belum pernah simpan dan 0
35 SimpanRuas:
36 SETB F0 Sudah pernah simpan angka
37 ACALL JadikanRuas
38 MOV R0,$04 R0 <- R4
39 MOV @R0,A Simpan
40 Berikutnya:
41 INC R4
42 DJNZ R7,DigitBerikutnya
43 RET
44
45 AngkaPembagi:
46 DW 1000
47 DW 100
48 DW 10
49 DW 1
P Program untuk mengendalikan AT89C2051 harus diisikan ke dalam IC microcontroller itu, untuk itu diperlukan alat yang dinamakan sebagai AT89C2051 Flash PEROM Programmer.
Program Lengkap Pengukur Jarak Ultrasonik menggunakan AT89C2051 dapat anda download disini