Pengukur Jarak Dengan Ultra Sonic

Thursday, November 17th, 2016 - Aplikasi Mikrokontroler

Pengukur Jarak Dengan Ultra Sonic

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 Pengukur Jarak Dengan 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.

Prinsip Echo Sounder,pengukur jarak dengan ultra sonic,rangkaian pengukur jarak dengan ultra sonic,alat pengukur jarak dengan ultra sonic,jual pengukur jarak dengan ultra sonic,beli pengukur jarak dengan ultra sonic,harga pengukur jarak dengan ultra sonic,kit pengukur jarak dengan ultra sonic,modul pengukur jarak dengan ultra sonic,pengukur jarak dengan ultra sonic berbasis mikrokontroler,membuat pengukur jarak dengan ultra sonic,merakit alat pengukur jarak dengan ultra sonic

Gambar 1. Prinsip Echo Sounder

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.

Rangkaian Kontrol & Tampilan

Gambar 2. Rangkaian Kontrol & Tampilan

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.

Pemancar Pulsa Ultrasonic

Pulsa Ultrasonic dibangkitkan di pin P3.4 AT89C2051 (ULTRA_OUT) dengan potongan Program 1, sebagai berikut:

Potongan Program 1 – Membangkitkan sinyal ultra sonic

  1. PulsaUltraSonic:
  2.     MOV   R7,#24    Nilai awal R7 = 24
  3. Loop:
  4.     NOP             waktu untuk mengerjakan baris 4..14
  5.     NOP             = 12 mikro-detik
  6.     NOP
  7.     NOP
  8.     NOP
  9.     NOP
  10.     NOP
  11.     NOP
  12.     NOP
  13.     CPL   Ultra_Out Ultra_Out (P3.4) := not Ultra_Out
  14.     DJNZ R7,Loop    Turunkan nilai R7, ulangi lagi kalau R7<>0
  15. RET

Processor memerlukan waktu untuk melaksanakan instruksi. Bagi AT89C2051 yang bekerja pada frekuensi 12 MHz, instruksi NOP (baris 4 sampai 12); instruksi   CPL (baris 13) dilaksanakan dalam waktu 1 mikro detik, dan 2 mikro detik untuk melaksanakan instruksi DJNZ (baris 14). Dengan demikian waktu yang diperlukan untuk melaksanakan instruksi-instruksi di baris 3 sampai 13 adalah 12 mikro detik.

Di baris 12, nilai Ultra_Out (= pin P3.4) dibalik, kalau semula Ultra_Out bernilai 0 setelah instruksi ini dijalankan Utltra_Out akan bernilai 1, dan sebaliknya kalau semula 1 dan berbalik menjadi 0.

Di baris 13 nilai R7 dikurangi 1, selama R7 belum mencapai 0 AT89C2051 akan mengulang lagi baris 2 dan seterusnya. Di baris 1 R7 diberi nilai 24, dengan demikian baris 2 sampai 13 akan diulang sebanyak 24 kali, dan selama itu pin 3.4 akan berbalik dari 0 ke 1 dan 0 kembali sebanyak 12 kali. Dengan demikian, hasil kerja Potongan Program 1 adalah pulsa ultrasonic12 gelombang dengan frekuensi 1/24 mikrodetik = 41666 Hz.

Rangkaian Pemancar Ultra Sonic

Rangkaian Pemancar Ultra Sonic

Gambar 3. Rangkaian Pemancar Ultra Sonic

Pulsa ultrasonic diperkuat dan dipancarkan dengan rangkaian pemancar Ultrasonic di Gambar 3. Rangkaian ini dibangun dengan Inverter CMOS MC14049, inverter U1B dipakai untuk membalik fasa sehingga tegangan di output gabungan U1A & U1C akan selalu berlawanan dengan tegangan di output gabungan U1D & U1E, dengan demikian amplitudo ultrasonic yang sampai di tranduser ultrasonic menjadi 2 kali lipat. C1 dipakai untuk menahan arus DC, sehingga hanya sinyal ultrasonic saja yang bisa masuk ke tranduser ultrasonic.

Rangkaian Penerima Pulsa Ultra Sonic

Rangkaian Penerima Ultrasonic pada Gambar 4, merupakan rangkaian yang umum dipakai untuk penerima ultrasonic, rangkaian ini bisa diganti dengan rangkaian yang lain, asalkan saat tidak ada sinyal ultrasonic keluarannya (ECHO_IN) bernilai ‘1’ dan menjadi ‘0’ begitu menerima sinyal ultrasonic, sesuai dengan kondisi yang dipantau AT89C2051 lewat Potongan Program 2.

Rangkaian Penerima Ultra Sonic

Gambar 4. Rangkaian Penerima Ultra Sonic

Pengukuran Selang Waktu

Pengukuran selang waktu dilakukan dengan bantuan Timer 1 yang ada di dalam IC AT89C2051 seperti terlihat pada Gambar 5. TL1 dan TH1 merupakan bagian dari Timer 1, masing-masing berupa pencacah 8 bit yang diuntai menjadi pencacah 16 bit (Mode 1). TR1 berfungsi untuk mengatur masuknya sinyal 1 MHz ke untaian pencacah, saat TR1 bernilai 0 tidak ada sinyal yang masuk, saat bernilai 1 maka untaian pencacah akan mencacah dari 0 sampai $FFFF (heksadesimal) dan kembali lagi ke 0, dan diikuti TF1 menjadi 1.

Pengukur Waktu

Gambar 5. Pengukur Waktu

Pengukuran selang waktu antara saat pulsa ultrasonic dikirim dan pulsa pantul diterima dilakukan dengan Potongan Program 2 sebagai berikut : TR1 diberi nilai 1 agar untaian pencacah bekerja (baris 1) dan ditunggu sampai isi pencacah menjadi 0 dengan cara menunggu TF1 sampai bernilai 1 (baris 2 dan 3). Segera setelah itu dibangkitkan pulsa ultrasonic dengan memanggil sub-rutin di Potongan Program 1 (baris 4), disusul menunggu pantulan pulsa dengan cara memantau P3.5 sampai bernilai 0 (baris 5 dan 7, abaikan dulu baris 6), setelah itu TR1 diberi nilai 0 (baris 7). Dengan demikian posisi untaian pencacah TL1/TH1 yang terakhir merupakan lamanya selang waktu dalam satuan mikro detik.

Kalau jarak yang diukur terlalu jauh, pulsa ultrasonic yang dikirimkan tidak terpantulkan, akibatnya AT89C2051 akan menunggu terus di baris 5 dan 7, agar hal ini tidak terjadi ditambahkan baris 6, yakni sambil menunggu pulsa pantulan dipantau pula apakah untaian pencacah sudah melimpah, kalau sampai melimpah maka tidak perlu menunggu pulsa pantulan lagi, aliran program dialihkan ke Selesai, dan untaian pencacah dihentikan.

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

Perhitungan Jarak Program Pengukur Jarak Dengan Ultra Sonic

Seperti diketahui, kecepatan rambat suara di udara adalah 34399.22 cm/detik, berarti untuk merambat sejauh 1 cm suara membutuhkan waktu 29 mikro detik. Selang waktu yang sudah tercatat di untaian pencacah TL1/TH1 (Potongan Program 3, baris 2 sampai dengan 4) setara dengan dua kali jarak pemancar ultrasonic dengan penghalang. Selang waktu tersebut dalam satuan mikro detik, untuk mengubah menjadi jarak (cm) harus membaginya dengan bilangan 58 (Potongan Program 3, baris 10 sampai dengan 13).

Untuk mendapatkan angka pecahan di belakang desimal, karena rutin arithmatik yang dipakai adalah rutin perhitungan bilangan bulat (integer), maka sebelum pembagian di atas nilai TL1/TH1 dikalikan dulu dengan 10 (Potongan Program 3, baris 10 sampai dengan 13).

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

Perhitungan di atas adalah perhitungan secara biner, bilangan biner ini dirubah dulu menjadi bilangan desimal agar bisa ditampilkan. Bilangan biner tersebut dibagi dengan 1000 untuk mendapatkan angka ribuan, sisanya dibagi dengan 100 untuk mendapatkan angka ratusan dan seterusnya, seperti terlihat pada Potongan Program 4.

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.      MOV   R0,#HasilBagi
  9.      MOV   R1,#SisaBagi
  10.      ACALL Copy
  11. DigitBerikutnya:
  12.      MOV   R0,#SisaBagi
  13.      MOV   R1,#Operand
  14.      ACALL Copy
  15. * Ambil AngkaPembagi dari Tabel
  16.      CLR   A
  17.      MOV   Pembagi+2,A
  18.      MOVC A,@A+DPTR
  19.      INC   DPTR
  20.      MOV Pembagi,A
  21.      CLR   A
  22.      MOVC A,@A+DPTR
  23.      INC   DPTR
  24.      MOV   Pembagi+1,A
  25.      ACALL Pembagian                SisaBagi dibagi 1000; 100; 10 dan 1
  26.      MOV   A,HasilBagi HasilBagi=0?
  27.      JNZ   SimpanRuas               Tidak, jadikan simpan ruas
  28.      JNB   F0,Berikutnya            Belum pernah simpan dan 0
  29. SimpanRuas:
  30.      SETB   F0                      Sudah pernah simpan angka
  31.      ACALL JadikanRuas
  32.      MOV   R0,$04                   R0 <- R4
  33.      MOV   @R0,A                    Simpan
  34. Berikutnya:
  35.      INC   R4
  36.      DJNZ R7,DigitBerikutnya
  37.      RET
  38. AngkaPembagi:
  39.      DW    1000
  40.      DW    100
  41.      DW    10
  42.      DW    1

Rancangan di atas bisa dipakai untuk mengukur jarak sampai sejauh lebih kurang 10 meter, pada jarak tersebut waktu rambat suara lebih kurang sebesar 2 x 1000 cm x 29 mikro-detik/cm = 58.000 mikro detik, hampir mencapai angka maksimum yang bisa ditampung untaian pecacah TL1/TH1 yang 65535.

Meskipun demikian untuk bisa mengukur sejauh itu, rangkaian pemancar dan penerima ultrasonic harus benar-benar dalam keadaan yang baik, terutama harus dipilih tranduser ultrasonic yang prima. Alat ini akan punya nilai komersil yang baik jika tampilan 7 ruas dengan LED diganti dengan tampilan LCD, agar pemakaian daya rangkaian pengukur jarak dengan ultra sonic menjadi kecil dan bisa bekerja dengan baterai saja.

Title : Pengukur Jarak Dengan Ultra Sonic
Archive : Aplikasi Mikrokontroler

You may also like, related Pengukur Jarak Dengan Ultra Sonic