(Oleh : Abdurachman Sa’ad) Robot Avoider (Oleh : Abdurachman Sa’ad) Lisensi Dokumen CopyLeft 2010 Seluruh dokumen ini dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tjuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang di sertakan dalam setiap dokumen Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari penulis
Sensor Ping Sharp
Mikrokontroler Minimum Sistem Atmega 128
Aktuator Servo Motor
Ping (Ultrasonic Sensor) Mendeteksi Objek didepan dengan cara menangkap pantulan dari sinyal yang dipancarkan, mirip dengan kelelawar, radar. Menggunakan 1 line I/O LED sebagai indikator aktifitas Untuk mendeteksi obyek (menggantikan sensor infra merah)
Prinsip Kerja PING
Kontroler mengirimkan sinyal start PING)) memancarkan sinyal burst pendek PING)) mengirimkan pulsa echo Kontroler mengukur lebar pulsa echo dari PING)))
Program #define pulse PORTA.0 #define echo PINA.0 #define arah DDRA.0 #define out 1 #define inp 0 unsigned int count=0; float jarak; unsigned char kata1[16]; unsigned char kata2[16];
Program count=0; arah=out; pulse=1; delay_us(5); pulse=0; arah=inp; 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);
Servo Motor motor yang mampu bekerja 2 arah (searah jarum jam atau berlawanan jarum jam) dimana arah pergerakan motornya dapat dikendalikan hanya dengan memberikan pengaturan pulsa pada bagian pin kontrolnya.
Pengkabelan
Counter Clock West
Center
Clock West
Program #define servokiri PORTD.0 #define servokanan PORTD.1 unsigned char y,servo1_,servo2_; interrupt [TIM2_OVF] void timer2_ovf_isr(void) { // Place your code here y++; if(y==250) y=0; else if(y<=servo1_)servokiri=1; else servokiri=0; if(y<=servo2_)servokanan=1; else servokanan=0; }
Program void maju() { servo1_=5; servo2_=40; } void mundur() servo1_=40; servo2_=5;
Prosedur pemanggilan while (1) { maju(); delay_ms(500); mundur(); }; }
Terima Kasih