Pengukur jarak dengan sensor ultrasonic (PING))) tanpa timer

Pada dunia robotika, apalagi bagi teman – teman yang sudah sering ikut lomba robot, sensor jarak ultrasonik tentu bukan barang baru lagi. Akan tetapi bagi yang belum pernah mencoba, bahkan mendengarnya pun juga baru kali ini, jangan khawatir, karena akan saya sampaikan secara rinci. Jenis sensor yang digunakan adalah PING))), terlihat pada gambar :

Terdapat 3 pin pada sensr PING))) :
GND : ground, terhubung ke ground power supply.
5 V : +5 volt, terhubung ke tegangan 5 volt DC.
SIG : Signal, pin untuk membangkitkan dan menerima gelombang ultrasonik, terhubung ke salah satu pin Arduino.

Iklan EDUROBO

Metode pengukuran jarak dengan sensor ultrasonik adalah dengan memanfaatkan konstanta kecepatan gelombang ultrasonik 1130 feet/second atau 344 m/s. Sehingga untuk menempuh jarak 1 cm dibutuhkan waktu : 29 µs. Dengan menghitung waktu tempuh ultrasonik kemudian dibagi dengan 29 µs maka kita dapatkan jarak tempuh.

Untuk sensor PING))) maka tahapan pengukuran sebagai berikut :

  1. Buat sinyal ultrasonik dengan frekuensi 40 KHz dengan cara pin SIG dibuat HIGH selama 2 µs s/d 5 µs.
  2. Tunggu sampai waktu sekitar 750 µs. Gelombang ultrasonik akan terpancar sampai mengenai sasaran kemudian akan terpantul menuju kembali ke sensor PING))). Selama ultrasonik belum diterima kembali oleh sensor, kondisi logika pin SIG adalah HIGH.
  3. Hidupkan timer (untuk menghitung waktu tempuh) dan tunggu sampai gelombang ultrasonik diterima kembali (setelah terpantul) dengan tanda pin SIG berubah menjadi LOW.
  4. Jika sinyal ultrasonik sudah diterima kembali matikan timer. Waktu tempuh yang terhitung adalah 2 kali jarak tempuh yaitu kirim – terima (atau bahasa umumya pergi – pulang). Waktu tempuh sensor dengan target berarti waktu tempuh total dibagi 2.
  5. Jarak antara sensor dengan target = waktu tempuh sensor ke target/29 µs (cm).

Keterangan :
tout        :    lebar pulsa HIGH sebagai pembangkit ultrasonik, minimal 2 µs, standarnya 5 µs.
tHOLDOFF  :    lebar pulsa LOW ,750 µs, untuk kondisi menunggu sampai kondisi pin SIG menjadi HIGH.
tIN-MIN    :    lebar pulsa minimal, yaitu waktu tempuh minimal yang dapat terdeteksi. Besarnya 115 µs (jarak minimal sekitar 2 cm).
tIN-MAX   :    lebar pulsa maksimal, yaitu waktu tempuh maksimal yang dapat terdeteksi sebesar 18.500 µs (jarak maksimal sekitar 319 cm).
Ok, langsung aplikasi aja ya, buat rangkaiannya dulu :
Trus bikin program pakai CodeVision :

#include
#include
#include
#define ping PINC.0
99 proyek arduino
unsigned int jarak;
char buf[33];

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x1B ;PORTA
#endasm
#include

// Declare your global variables here

void ukur_jarak()
{
 unsigned int i;
 jarak=0;
 DDRC.0=1;
 PORTC.0=0;
 delay_us(100);
 PORTC.0=1;  //tout, H=5 us
 delay_us(5);
 PORTC.0=0;
 delay_us(750);//tHOLDOFF L=750 us
 PORTC.0=1;
 DDRC.0=0;
 for (i=0;i<=1000;i++)
 {
    if (ping) {jarak++;}
    delay_us(58);
 }    
}
void main(void)
{
lcd_init(16);
lcd_clear ();
lcd_putsf (“PING tanpa timer”);
lcd_gotoxy(0,1);     
lcd_putsf (“Jarak=”);
while (1)
      {
       ukur_jarak();     
       sprintf (buf,”%3i cm”,jarak);       lcd_gotoxy (6,1);
       lcd_puts (buf);
       }
}

Compile trus download di mikro, ATmega32 dapat diganti ATmega16 atau ATmega8535.

Selamat mencoba ….

Master Mikrokontroler

Keterangan :

tout        :

lebar pulsa HIGH sebagai pembangkit ultrasonik, minimal 2 µs, standarnya 5 µs.

tHOLDOFF  :

lebar pulsa LOW ,750 µs, untuk kondisi menunggu sampai kondisi pin SIG menjadi HIGH.

tIN-MIN    :

lebar pulsa minimal, yaitu waktu tempuh minimal yang dapat terdeteksi. Besarnya 115 µs (jarak minimal sekitar 2 cm).

tIN-MAX   :

lebar pulsa maksimal, yaitu waktu tempuh maksimal yang dapat terdeteksi sebesar 18.500 µs (jarak maksimal sekitar 319 cm).

This entry was posted in Mikrokontroler AVR. Bookmark the permalink.

26 Responses to Pengukur jarak dengan sensor ultrasonic (PING))) tanpa timer

  1. sulis says:

    siiip buat tambah2 ilmu bang, kalo jaraknya lebih dari 319cm maksimal jarak ukur bisa ga bang ? maklum masih pemula.. moho dibantu bang..

    • admin says:

      Ada banyak tipe sensor jarak yang bisa lebih dari itu mas, contoh kalo pake tipe ‘Devantech SRF08’ bisa sampe 6 meteran mas…
      Tipe yang lain juga banyak kok mas, cuman ya itu, ada jarak ada harga…hehe…. (biasanya lebih mahal maksude)

  2. Eyik Wijaya says:

    Wah,Bang. ini penemuan yg canggih ni tdk perlu pakek meteran lagi ni…em.bang mau tanyak ni, kalau mau ngisi program ke IC ATmega 16 gimana caranya ya…bentuk alatnya seperti apa?terus di mana beli dan harganya? itu dulu bang atas bantuanya saya ucapkan trimakasih. Salam saya,Eyik-Palembang

  3. Eyik Wijaya says:

    Halo,bang trima kasih.infonya…duh,saya masih bingung ni.em…gini bang alat yang lengkapnya seperti apa bang?jadi saya tinggal siap pakai aja. trus harganya berapa bang?trima kasih sebelumnya….salam saya.Eyik-palembang.

  4. Eyik Wijaya says:

    trima kasih sbelumnya,untuk USB Downloader,sudah saya buka. alat lainnya
    yg sudah jadi satu set apa aja ya bang? misalkan kita mau ngisi program pada Atmega16 yg masih kosong. ttrima kasih sebelumnya atas bantuannya.

  5. Eyik Wijaya says:

    Selamat Pagi Bang,Sebelumnya Minta Mf ni kalau Sudah Ngerepotin. gini bang misalkan kita punya Atmega16 yang sudah ada isi programnya. bisakah isi program Amega16 tsb kita copy paste ke Atmega yg masih kosong.trima kasih pak atas bantuannya.

    • admin says:

      Bisa saja, tinggal dibaca isi memori program di IC yg 1 trus diisikan ke IC yg lain. Syarat : ATmega16 yg mau dicopy tidak di lock.

  6. yusuf says:

    bagus mas programnya setelah saya coba dapat data yang bagus, n sesuai dengan pengukuran pake mistar, tetapi saat dibuat fungsi untuk digunakan pada 3 buah sensor yang terbaca atau beroperasi hanya 1 buah sensor aja, yang dikondisikan sebagai sensor 1, atau nol dalam penggunaan bitnya, saat coba saya menggunakan mikro ATmega 16 dengan kristal 8mhz, dan 3 buah sensor ultrasonik ping…

    thanks alot mas..

  7. fauzan Adhima says:

    bagaimana cara kita membuat program untuk dua sensor yang berhubungan
    untuk apabila ada benda melewati benda sensor 1 maka kita hidupkan timer dan jika benda sudah melewati sensor 2 maka timer kita stop ??
    mohon bantuan nyan
    terima kasih

    • admin says:

      Tinggal baca logika sensornya aja (jika sensor digital). Jk sensor1 ON trus Timer di ON kan. Jk sensor 2 ON maka Timer di OFF kan.
      Begitu logikanya.
      Trims

  8. alfian says:

    mas, kog sensor ultrasonik PING saya pembacaan jarak nya tidak bisa maksimal 3 meter, hanya dapat membaca max 1,2 meter … knpa ya masalahnya?

  9. ervan says:

    gan saya mau buat alat pengukur tinggi badan sebagai tugas akhir saya, program nya sama seperti itu atau ada yang lain gan.?

  10. iqbal says:

    sensor ping dan sensor srf 05 apakah sama gan?

    • admin says:

      Fungsi sama. Sistem juga sama. Yang beda fisik pin, PING))) punya 3 kaki : Vcc , SIG, Gnd. SRF ada 4 : Vcc, Trig, Echo, Gnd.
      Pin Trig & Echo pada PING))) dijadikan 1 menjadi pin SIG.

  11. iqbal says:

    sensor srf 05 dan sensor ping apakah sama gan?

    • admin says:

      Agak berbeda mas, kalau PING hanya 3 pin : VCC, GND, SIG. Nah pin SIG (Signal) berfungsi ganda : pertama sebagai pin trigger untuk memancarkan gelombang ultrasonik kemudian setelah itu berubah fungsi sebagai pin deteksi diterimanya kembali gelombang ultrasonik. Sedangkan SRF ada 4 : VCC, GND, TRIG, ECHO. Jadi 2 fungsi tadi dijadikan kaki terpisah. Prinsip kerja mirip banget

  12. Pingback: ‘ULTRASONIC DISTANCE METER’ TAMPILAN 7 SEGMENT | inkubator-teknologi.com

  13. ugenk says:

    Tau gak mas cara untuk sensor srf08 bisa menampilkan 0,00, biasanyakan hanya bisa menampilkan jarak bilangan bulat 1,2,3,4 sampai sekian ?

Leave a Reply