SENSOR ULTRASONIK
Sensor ultrasonik
adalah
Besar
amplitudo
sinyal
penerima
unit
unit
sederhana,
kristal
mekanik
menggunakan
penerima.
Struktur
sebuah
jangkar
dihubungkan
dan
dengan
hanya
tergantung
dari
metode
jauh
pantulan
diafragma
kristal
ultrasonik
piezoelectric
berkontraksi
mengembang
atau
akan
dalam
perjalanannya
(mengikat),
menyusut
dengan
kecepatan
rambat
dari
efek piezoelectric.
contoh
adalah
prinsip sonar.
Receiver
akan
membaca
lebar
dipantulkan
objek
dan
Tegangan keja : 5V DC
waktu
50mA)
depan
Jangkauan
Input trigger
: 3cm - 300cm
pemancaran.
selisih
sensor
dapat
Dengan
diketahui.
TTL
Dimensi
: PxLxT (24 x 20 x
17) mm
SRF04 mempunyai 4 pin yaitu
VCC, Trigger, Output dan Gnd.
supply
5VDC
yang
ground.
Pin
echo
pulse
kontroller
maka
receiver
akan
menerima
untuk
mendapatkan
juga
100Khz),
dengan
setelah
frekuensi
kita
berikan
pin
echo
high
mulai
Pada Mikrokontroler
dengan
menggunakan
sensor
n
o
Symbol
LCD
PIN
Mikrokontroler
Vss/GND
GND
Vcc
VCC
Vee
V0
RS
PORT A. 0
R/W
PORT A. 1
PORT A.2
DB0
DB1
menunjukkan
jarak
sebenarnya).
sinyal
ultrasonic
pada
outputnya
objek
Berikut
ini
yang
adalah
diterima.
data
DB2
1
0
DB3
1
1
DB4
1
2
1
3
DB5
DB6
n
o
Srf04
Mikrokontroler
Vcc
VCC
Output
PIN B.0
Trigger
PIN B.1
DO NOT
CONNECT
0V/GND
GND
PORT A. 4
PORT A. 5
PORT A. 6
4. CONTOH GAMBAR RANGKAIAN
1
4
DB7
PORT A. 7
1
5
V+BL
1
6
V-BL
CONTOH PROGRAM
/
*************************************
****************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
Copyright 1998-2008 Pavel
Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 10/23/2014
Author :
Company :
Comments:
Chip type
: ATmega8535
Program type
: Application
Clock frequency
: 8.000000 MHz
Memory model
: Small
External RAM size : 0
Data Stack size
: 128
*************************************
****************/
#include <mega8535.h>
#include <stdio.h>
#include <delay.h>
#define trigger PORTB.1
#define echo PINB.0
unsigned int jarak;
char buf[33];
// Alphanumeric LCD Module
functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#include <stdio.h>
// Declare your global variables here
void s0()
{
unsigned int i;
jarak=0;
delay_us(100);
trigger=1; //tout, H=5 us
delay_us(15);
trigger=0;
delay_us(100);
while(!echo);
for (i=0;i<=500;i++)
{
if (echo) {jarak++;}
delay_us(40);
}
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In
Func4=In Func3=In Func2=In
Func1=In Func0=In
// State7=T State6=T State5=T
State4=T State3=T State2=T
State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In
Func4=In Func3=In Func2=In
Func1=In Func0=In
// State7=T State6=T State5=T
State4=T State3=T State2=T
State1=T State0=T
PORTB=0xFF;
DDRB=0xAA;
// Port C initialization
// Func7=Out Func6=In Func5=Out
Func4=In Func3=Out Func2=In
Func1=Out Func0=In
// State7=1 State6=P State5=1
State4=P State3=1 State2=P
State1=1 State0=P
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In
Func4=In Func3=In Func2=In
Func1=In Func0=In
// State7=T State6=T State5=T
State4=T State3=T State2=T
State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Of
// Input Capture on Rising Edge
// Timer 1 Overflow Interrupt: Of
// Input Capture Interrupt: Of
// Compare A Match Interrupt: Of
// Compare B Match Interrupt: Of
TCCR1A=0x00;
TCCR1B=0x40;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Of
// INT1: Of
// INT2: Of
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s)
initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Of
// Analog Comparator Input Capture
by Timer/Counter 1: Of
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
//lcd_clear();
//lcd_gotoxy(0,0);
//lcd_putsf ("SRF04");
while (1)
{
// Place your code here
s0();
//jika
menggunakan srf 8 buah, mk panggil
ja lagi s4....s7()
sprintf (buf,"%d ",jarak);
lcd_gotoxy (0,0);
lcd_puts(buf);
delay_ms(100)
};
}
KESIMPULAN :
- Sensor ultrasonik SRF04 bisa
digunakan sebagai navigasi
dan sebagai sensor pendeteksi
penghalang benda yang ada di
depannya.
- Sensor ultrasonik SRF04 hanya
bisa digunakan untuk
mendeteksi benda padat saja.