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 mikrokontroler.
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 :
- Buat sinyal ultrasonik dengan frekuensi 40 KHz dengan cara pin SIG dibuat HIGH selama 2 µs s/d 5 µs.
- 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.
- Hidupkan timer (untuk menghitung waktu tempuh) dan tunggu sampai gelombang ultrasonik diterima kembali (setelah terpantul) dengan tanda pin SIG berubah menjadi LOW.
- 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.
- 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 <mega32.h>
#include <delay.h>
#include <stdio.h>
#define ping PINC.0
unsigned int jarak;
char buf[33];
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
// 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 ….
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). |
siiip buat tambah2 ilmu bang, kalo jaraknya lebih dari 319cm maksimal jarak ukur bisa ga bang ? maklum masih pemula.. moho dibantu bang..
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)
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
pakai USB Downloader, detail & harga bisa dicek disini
trims ya dah mampir
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.
klik aja link-nya tadi, ntar juga ketahuan..
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.
bisa pakai Desymega atau http://inkubator-teknologi.com/avr-siap-guna/desymega-wser-development-system-atmega-with-serial/ atau Desymega wRTC
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.
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.
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..
Coba lihat artikel inkubatek yang ini mas Mengukur 4 Jarak dengan sensor ultrasonik …
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
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
terima kasih banyak saran nya
saya menggunakan sensor ultra sonic
mas, kog sensor ultrasonik PING saya pembacaan jarak nya tidak bisa maksimal 3 meter, hanya dapat membaca max 1,2 meter … knpa ya masalahnya?
Coba ganti yang lain, supaya tahu apakah programnya atau sensornya.
gan saya mau buat alat pengukur tinggi badan sebagai tugas akhir saya, program nya sama seperti itu atau ada yang lain gan.?
Bisa pakai yang seperti ini
sensor ping dan sensor srf 05 apakah sama gan?
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.
sensor srf 05 dan sensor ping apakah sama gan?
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
Pingback:‘ULTRASONIC DISTANCE METER’ TAMPILAN 7 SEGMENT | inkubator-teknologi.com
Tau gak mas cara untuk sensor srf08 bisa menampilkan 0,00, biasanyakan hanya bisa menampilkan jarak bilangan bulat 1,2,3,4 sampai sekian ?
Kalau yang SRF08 belum pernah coba mas, maaf. Barangkali ada kawan yang mau share disini monggo …
Mas kk saya coba ada yang eror 1 ya
Errornya seperti apa ?