Komponen :
Servo : 2x Servo
Sensor : Ping )))
uController : ATMEGA8535-16PU
Plan : Here
Program V1. Ping inactive
//**********************************************************************//
//-----------------------------Roni Andria------------------27-oct-2012-//
//**********************************************************************//
#include
#include
#define servo1 PORTB.0
#define servo2 PORTB.1
#define propeler1 PORTB.3
#define propeler2 PORTB.4
#define propeler3 PORTB.5
#define switch1 PINA.0
#define switch2 PINA.1
// mendeklarsikan global variables
char i,j,k,l,p,s;
// instruksi servo
void center1(char j) // center
{
for(i=0;i
{
servo1=1;
delay_us(1500);
servo1=0;
delay_ms(20);
}
}
void full_cw1(char j) //rotate 180 degree CW
{
for(i=0;i
{
servo1=1;
delay_us(2400);
servo1=0;
delay_ms(20);
}
}
void full_ccw1(char j) //rotate180 degree CCW
{
for(i=0;i
{
servo1=1;
delay_us(600);
servo1=0;
delay_ms(20);
}
}
// end perintah
void center2(char l) // center
{
for(k=0;k
{
servo2=1;
delay_us(1500);
servo2=0;
delay_ms(20);
}
}
void full_cw2(char l) //rotate 180 degree CW
{
for(k=0;k
{
servo2=1;
delay_us(2400);
servo2=0;
delay_ms(20);
}
}
void full_ccw2(char l) //rotate180 degree CCW
{
for(k=0;k
{
servo2=1;
delay_us(600);
servo2=0;
delay_ms(20);
}
}
// untuk dua servo bersamaan
void center(char j) // center
{
for(i=0;i
{
servo1=1;
servo2=1;
delay_us(1500);
servo1=0;
servo2=0;
delay_ms(20);
}
}
void full_cw(char j) //rotate 180 degree CW
{
for(i=0;i
{
servo1=1;
servo2=1;
delay_us(2400);
servo1=0;
servo2=0;
delay_ms(20);
}
}
void full_ccw(char j) //rotate180 degree CCW
{
for(i=0;i
{
servo1=1;
servo2=1;
delay_us(600);
servo1=0;
servo2=0;
delay_ms(20);
}
}
void main(void)
{
PORTB=0x00; //set PORTB 0
DDRB=0x3B; //PORTB as output
DDRA = 0x00; //Port C sebagai input
//PORTA.0 = 1; //mengaktifkan pull up
//PORTA.1 = 1; //hanya 2 pin pertama port A
//inisialisasi posisikan ke tengah
center1(5);
center2(5);
delay_ms(50);
while(1)
{
// 1 = ekor
// 2 = kepala
//delay_ms(50);
full_ccw1(3);
full_cw2(3); //
//delay_ms(50);
//delay_ms(50);
full_cw1(3);
full_ccw2(3);
//delay_ms(50);
center1(5);
center2(5);
//delay_ms(50);
full_cw1(3);
full_ccw2(3); //
//delay_ms(50);
//delay_ms(50);
full_ccw1(3);
full_cw2(3);
//delay_ms(50);
center1(5);
center2(5);
};
}













