1. Antarmuka dengan Sensor Obyek Infrared

Daftar Bahan
- Sistem Minimum ATMega85353 ST-8535
- Sensor Infrared DSF-01 (Delta Single lineFollower)
- 8 bit LED Logic Output LD-51
Deskripsi
Aplikasi ini berfungsi untuk mendeteksi obyek di depan sensor jarak infrared DSF-01. Output DSF-01 akan berlogika 0 apabila ada obyek pada jarak 0-9 cm di depannya dan berlogika 1 apabila tidak ada obyek di jarak tersebut. Karena output dari sensor ini terhubung pada Port C0, maka saat port tersebut berlogika 0 maka PINC0 juga akan berlogika 0 dan diteruskan ke PB0 yang terhubung ke bit 0 dari 8 bit LED LD-51. LED LD-51 yang bersifat aktif low akan menyala pada saat bit tersebut berlogika 0
Pada saat PINC0 berlogika 1, maka PB0 juga logika 1 dan LED LD-51 padam
Listing Program

Daftar Bahan
Deskripsi
Listing Program ini dapat didownload di sini
3. Sensor Jarak Ultrasonic

Daftar Bahan
Deskripsi
Pada aplikasi ini menggunakan sensor jarak ultrasonic yang mendeteksi jarak dengan menggunakan signal ultrasonic yang dipancarkan menuju ke obyek dan dipantulkan lagi ke receiver. Interval dari pancaran dan penerimaan signal tersebut akan menjadi perhitungan jarak dan ditampilkan dalam signal echo.

Trigger dilakukan dengan membangkitkan signal pulsa high dengan durasi 10mS dan selanjutnya saat Echo diterima pada PortD3 maka proses counting mulai dilakukan dan stop pada saat Echo kembali berlogika 0. Hasil dari proses counting akan disimpan pada Register TCNT1. Agar diperoleh perhitungan jarak maka digunakan formula berikut:
jarak=(waktu*34000*5)/100000000/2
Di sini digunakan kecepatan suara yaitu 340 meter / detik sebagai acuan perhitungan. Dan dibagi 2 karena proses perhitungan dilakukan pada signal yang lewat secara pulang pergi. Counter akan distop saat logika Echo kembali 0 dan hasil jarak yang telah dikonversi akan dikirim ke layar terminal dengan menggunakan USB to Seriall DU-232. Hasil tersebut akan dikirimkan ke layar terminal setiap detik.
Apabila interval perhitungan interval melebihi 0x30 maka bit 1 dari 8 bit LED Logic output LD-51 akan berlogika 0 dan LED1 akan aktif. Namun bila perhitungan interval masih dibawah 0x30 maka bit 1 akan berlogika 1 dan LED padam.
Listing Program
int main (void){
USART_INIT(MYUBRR);
DDRB=0b11111111;
DDRD=0b11110110;//PORTD4 sebagai trigger dan PortD3 sebagai echo
PORTB=0b00000001;
TCCR1A=0b00000000;//Timer 1 16 bit sebagai penghitung nilai echo
TCCR1B=0b00000000;//Timer masih OFF
PORTB=0xFF;//LED OFF semua
while(1){
PORTD|=(1<<PORTD4);//Trigger pada PD4 sebesar 10mS
_delay_ms(10);//
PORTD&=~(1<<PORTD4);//
unsigned char counter;
counter=0;
while (!(PIND&(1<<PIND3))); //saat menerima Echo di PD3
while((PIND&(1<<PIND3)))//start timer 1 dengan prescaler 1x
TCCR1B=0b00000001;//selama Echo masih logika 1
TCCR1B=0b00000000;//stop timer 1
int jarak;
int waktu;
waktu=TCNT1;
jarak=(waktu*34000*5)/100000000/2;
USART_Transmit(jarak);//kirim nilai timer
if (waktu<0x30)
PORTB&=~(1<<PORTB1);
else PORTB|=(1<<PORTB1);//
TCNT1=0;
_delay_ms(1000);
}
}