Anda di halaman 1dari 5

DT-SENSE USIRR (ultrasonic and infrared ranger)

Avr atmega8535
Code vision avr

DT-SENSE UltraSonic and InfraRed Ranger merupakan modul sensor pengukur jarak dengan media gelombang
ultrasonic dan dapat dihubungkan dengan maksimum 2 buah infrared ranger (Sharp GP2D12). Modul ini dapat dengan
mudah dihubungkan ke berbagai sistem berbasis mikrokontroler dan hanya membutuhkan 1 pin I/O saja. Modul ini dapat
digunakan dalam aplikasi pengukur jarak, pintu otomatis, sekuriti, robot cerdas, dan lain-lain.

Dimensi : 2,6 cm (p) x 4,1 cm (l) x 6,2 cm (t)

Spesifikasi: :
-. Memiliki 2 jenis antarmuka yang dapat aktif bersamaan, yaitu I2C-bus (fSCL maks. 65 kHz) dan pulse width
(10µs/mm).
-. 8 modul dapat digunakan bersama dalam satu sistem I2C-bus yang hanya membutuhkan 2 pin I/O mikrokontroler
saja.
-. Membutuhkan catu daya tunggal +5 VDC, dengan konsumsi arus 17 mA typ. (tanpa sensor infrared ranger).
-. Terdapat 2 mode operasi yaitu full operation dan reduced operation. Pada mode reduced operation beberapa
komponen ultrasonic ranger akan dimatikan (saat idle) dan konsumsi arus mejadi 13 mA typ.
-. Terdiri dari sebuah ultrasonic ranger dengan spesifikasi:
· Mengukur jarak dari 2 cm hingga 3 m tanpa dead zone atau blank spot.
· Obyek dalam jarak 0 - 2 cm dideteksi sebagai 2 cm.
· Menggunakan burst sinyal kotak 16 Vp-p dengan frekuensi 40 kHz.
-. Dapat dihubungkan dengan maksimum 2 buah infrared ranger Sharp GP2D12 yang memiliki jangkauan pengukuran
10 - 80 cm.
-. Data keluaran sudah siap pakai dalam satuan mm (untuk antarmuka I2C) sehingga mengurangi beban
mikrokontroler.
-. Ketelitian pengukuran jarak (ranger) adalah 5mm.
-. Siklus pengukuran yang cepat, pembacaan dapat dilakukan tiap 25 ms (40 Hz rate).
-. Memerlukan input trigger berupa pulsa negatif TTL (20µs min.) untuk antarmuka pulse width.
-. Tersedia 1 pin output yang menunjukkan aktifitas sensor, dapat tidak dimanfaatkan.
-. Tidak diperlukan waktu tunda sebelum melakukan pengukuran berikutnya.
-. Kompensasi kesalahan dapat diatur secara manual untuk mengurangi pengaruh faktor perubahan suhu lingkungan
dan faktor reflektifitas obyek.

Pengujian sensor usirr, bertujuan untuk mengetahui besar range yang dapat
dijangkau oleh sensor ini, sensor ini tidak menyebar jadi, sensor ini fokus lurus ke
objek, tidak seperti pada sensor SRF04 atau sensor infrared GP2D12, kedua sensor
tersebut menyebar sekitar 400 (drajat). Untuk mengetahui besar range digunakan
simulasi 2 buah motor servo pada sebuah robot, apabila diberi suatu halangan dan
halangan tersebut digeser ke kiri atau ke kanan akan diketahui bahwa halangan
tersebut masih terdeteksi oleh sensor atau tidak, hal tersebut bisa diketahui dari
gerak robot, jika tidak terdeteksi maka robot akan maju dan jika ada halangan maka
robot akan berhenti. Berikut merupakan potongan untuk mengetahui besar range
sensor USIRR.
//////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////

#include <mega8535.h>
#include <delay.h>

// Declare your global variables here


unsigned int counter,US;

#define sinyal PORTA.2


#define masuk PINA.2
#define atur DDRA.2

#define kiri PORTA.0


#define kanan PORTA.1
cek()
{
atur = 1; // set SIG pin as output

sinyal = 0; //
delay_us(50); // send start pulse
sinyal = 1; //

atur = 0; // set SIG pin as input

counter=0;
while ((masuk==1)&&counter<40000)
{
counter++;
}
US=0;
while ((masuk!=1) && US<40000)
{
delay_us(1);
US++;
}
}

void maju()
{
int i;
for(i=1;i<50;i++)
{
kanan=1;
delay_us(850);
kanan=0;
delay_us(18000);

kiri=1 ;
delay_us(2000);
kiri=0 ;
delay_us(22000);

}
}
void mundur()
{
int i;
for(i=1;i<50;i++)
{
kanan=1;
delay_us(2000);
kanan=0;
delay_us(18000);

kiri=1 ;
delay_us(850);
kiri=0 ;
delay_us(22000);

}
}

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization


// Port A initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=1 State2=1 State1=1 State0=1
PORTA=0xFF;
DDRA=0xFF;

// 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=0x0c;
DDRB=0x04;
// Port C 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
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=0xFF;
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: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
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: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization


TIMSK=0x00;

// Analog Comparator initialization


// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
delay_us(100);
while (1)
{
cek();
if (US>=1000)
maju(); else mundur();

};
}

///////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
Kesimpulan dari percobaan ini dapat diketahui bahwa range dari sensor USIRR
seperti terlihat pada gambar berikut.

Berbeda dengan sensor infrared sharp GP2D12, Sensor ini memiliki sudut elevasi
hingga 40 drajat dan jarak maksimum yang dapat dijangkau adalah 80cm tegak
lurus dari sensor. berikut gambar range dari sensor infrared

Anda mungkin juga menyukai