Ultrasonic Sensor Overview
Analogi
Mendeteksiobyekdidepandengancaramenangkappantulandarisinyalyang dipancarkan, miripdengan
• Kelelawar
• Radar
PING)))
Untukmendeteksiobyek dengan menggantikan sensor infra red
• Menggunakan1 pin I/O
• LED sebagaiindikatoraktifitas
PrinsipkerjaPING)))
Adalah sebagai berikut:
Kontrolermengirimkansinyalstart
• PING))) memancarkan sinyal burst pendek
• PING))) mengirimkan pulsa echo
• Kontrole rmengukur lebar pulsa echo dari PING)))
Spesifikasi
• Supply Voltage : 5 VDC��Supply Current : 30 mAtyp; 35 mAmax
• Range : 2 cm to 3 m (0.8 in to 3.3 yrds)
• Input Trigger : positive TTL pulse, 2 uSmin, 5 μs typ.
• Echo Pulse : positive TTL pulse, 115 uSto 18.5 ms
• Echo Hold-off : 750 μs from fall of Trigger pulse
• Burst Frequency : 40 kHz for 200 μs
• Burst Indicator LED shows sensor activity
• Delay before next measurement : 200 μs
• Size : 22 mm H x 46 mm W x 16 mm D (0.84 in x 1.8 in x 0.6 in)
Teoripengoperasian
Kontroler menghasilkan pulsa ‘start’ dan menghitung lebar pulsa yang keluar.

Program AVR Ultrasonic
Pada percobaan ini digunakan modul AVR Atmega8535 dengan sebuahLCD untuk menampilkan nilai counter dan jarak dalam sentimeter.
• SiapkanmodulAVR danmodulPING))), hubungkan kedua modul tersebut dengan benar.
• Hubungkan modul AVR dengan PC, jalankan aplikasi Code Vision AVR.
• Gunakan wizard untuk mengakses LCD
Berikut adlah Deklarasi program
#include
#include
#define PULSE PORTA.0
#define ECHO PINA.0
#define ARAH DDRA.0
#define OUT 1
#define INP 0
Unsigened int count=0;
Float jarak;
Unsigened char kata1[16];
Unsigened char kata2[16];
Setelah memehami deklarasi program, dibawah ini adalah program utama sebagai berikut:
while (1)
{
// Place your code here
// port as output
count=0;
ARAH=OUT;
// pulse 2us
PULSE=1;
delay_us(5);
PULSE=0;
// port as input
ARAH=INP;
// with pull-up
PULSE=1;
while (ECHO==0) {};
while (ECHO==1)
{
count++;
}
jarak=((float)count)/242*10;
sprintf(kata1,"Counter=%d ",count);
sprintf(kata2,"Jarak=%3.2f cm",jarak);
lcd_clear();
lcd_gotoxy(0,0);lcd_puts(kata1);
lcd_gotoxy(0,1);lcd_puts(kata2);
delay_ms(200);
};
}
Read More..