Pengukur Jarak Ultrasonik Menggunakan AT89C2051 dengan Tampilan Seven Segmen

   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